selenium定位frame(iframe)的問(wèn)題

明明元素就在那,firebug也可以看到,但是無(wú)論怎么定位還是定位不到的時(shí)候,需要檢查下頁(yè)面是否含有iframe,你需要定位的元素是否在iframe之中,有可能就是因?yàn)閕frame的問(wèn)題。在一個(gè)default content中查找一個(gè)在iframe 中的元素,那肯定是找不到,同樣你在一個(gè)iframe 中查找另一個(gè)iframe元素或default content中的元素,那必然也定位不到

切換到frame之中

selenium提供了switch_to_frame()方法來(lái)切換frame,

driver.switch_to.frame(reference)


reference是傳入的參數(shù),用來(lái)定位frame,可以傳入id、name、index以及selenium的WebElement對(duì)象

reference一般輸id,但是也有動(dòng)態(tài)id的情況,可以使用xpath定位,然后傳入WebElement對(duì)象

從frame之中切換到default content主文檔

切換進(jìn)入frame之中后,我們就不能對(duì)主文檔的元素進(jìn)行操作了,如果需要操作,那么我們只能再切換回去

driver.switch_to.default_content()

遇到嵌套的frame

遇到嵌套的frame的時(shí)候,也就是一個(gè)frame里面還有一個(gè)frame的時(shí)候,我們要一層一層切換進(jìn)去,如

driver.switch_to.frame("frame1")   
driver.switch_to.frame("frame2")

如果我們已經(jīng)切換到frame2中,那么我們要返回frame之中怎么辦。selenium為我們提供了一個(gè)后退的方法。

driver.switch_to.parent_frame()

如果當(dāng)前已經(jīng)是主文檔了,那么后退沒(méi)有效果

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容