frame 嵌套的定位方法


在 web 應用中經常會出現 iframe 嵌套的應用,假設頁面上有 A、B 兩個 iframe,其中 B 在 A 內,那么定位 B 中的內容則需要先到 A,然后再到 B。

iframe 中實際上是嵌入了另一個頁面,而 webdriver 每次只能在一個頁面識別,因此需要用 switch_to_frame 方法去獲取 iframe 中嵌入的頁面,對那個頁面里的元素進行定位。

如果iframe里有id或者name,使用switch_to_frame()可以很方便的定位到,如

例1:

# 先找到到 ifrome1(id = f1)

driver.switch_to_frame("f1")

# 再找到其下面的 ifrome2(id =f2)

driver.switch_to_frame("f2")

# 下面就可以正常的操作元素了

driver.find_element_by_id("xx").click()

注:切到frame中之后,我們便不能繼續操作主框架的元素,這時如果想操作主框架內容,則需切回主文檔(最上級文檔);若使用后需要再次對iframe定位需要重新從初始化的frame進行定位。

br.switch_to.default_content()  回到當前頁面的上一個頁面,建議直接使用id回到主頁面再往下找

 

如果要再去定位其他frame的元素,需要回到該frame的上級,定位到要選擇的frame,不過為了保險起見,可以回到整個頁面的主frame,然后再去選擇其他frame。
.switch_to_frame("XXX")  XXX為frame的id或name或通過find_element_by_xxx找到的frame元素
.switch_to_default_content() 回到當前頁面的原始頁面,即可以退出當前的frame


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM