第一次用selenium+python編寫自動測試腳本,因為頁面中插入了富文本編輯,開始怎么都無法輸入進去,度娘好多方法都無效,分享踩坑的經歷一是為了記錄一下自己的成長,二是為了給同樣摸索selenium初學者的同行一個借鑒,與君共勉。
第一種方法切換frame:
driver.switch_to.frame(driver.find_element_by_xpath('//*[@id="edui1_iframeholder"]'))
# print(223)
driver.find_element_by_xpath('/html/body').send_keys("測試切換frame能否實現富文本編輯")
經過多次嘗試無效,可能是因為卻還frame出現的問題,不建議使用
第二種方法使用js進行實現:
# test_js = 'document.getElementById("ueditor_0").contentWindow.document.body.innerHTML="%s"' % ("測試切換frame能否實現富文本編輯")
# driver.execute_script(test_js)
test_js = 'document.getElementById("ueditor_0").contentWindow.document.body.innerText="%s"'%("測試切換frame能否實現富文本編輯"")
driver.execute_script(test_js)
innerHTML與innerText都可以實現
如果該富文本編輯器所在的iframe沒有id,可以是用js="document.getElementsByClassName(\"wind_editor_iframe\")[0].contentWindow.document.body.innerHTML=\"%s\"" %("內容")