近在使用IATA執行CASE的時候發現在chrome瀏覽器下處理一些類似所見即所得的富文本框,頁面元素在switchintoframe后無法正常切換回來,針對這個問題給出一個解決方案供大家交流。
具體如下
如圖所示,這是一個比較常見的富文本編輯框,在chrome下使用默認的處理方式即switch 進FRAME然后編輯完內容可能會發生無法切換回當前操作的window的問題,原因是chromedriver中switch操作元素的函數對富文本框的支持不是很好。
下面給出一種可行的思路大家交流一下,首先我們看一下這個頁面的源碼,找到這個編輯框的定義,操作方法,firefox 可以右鍵頁面空白處選擇 view page source ,搜索這個page source的 編輯框所定義的頁面代碼,上圖中的輸入框在頁面中定義的代碼為:
如圖中所示,我們發現這個textarea的id為 apf_id_1_f31 , 然后因為我們知道這個輸入框是一個富文本編輯框,我們可以全文搜索下apf_id_1_f31的定義,發現如下信息
從page source中,我們發現 KE.show({id:”apf_id_1_f31”…..
KE.show是神馬內?
GOOGLE一下,在GOOGLE搜索框中輸入KE.show 搜索出來的第一條信息,
當然 具體搜索出來的記錄可能會有略微變化,從搜索框中我們發現這是一個叫kindeditor的東東。從圖片中我們發現了和我們page source相似的KE.show({id:’content_1’…..。
試試在pagesource中查找下kindEditor~
神奇的發現頁面中有加載了kindeditor的js代碼,原來頁面中這個描述的輸入框是一個使用kindeditor的福本文框。
接下來 如果我們不希望調用selenium自己的切入富文本框的方式來做,我們可以使用kindeditor提供的默認API來達到對文本框輸入信息的目的。