Python+Selenium練習篇之28-處理iframe切換
阿新 • • 發佈:2018-12-30
本文介紹如何利用Selenium中方法,在不同iframe中切換。
問題:有時候我們發現元素定位沒問題,在測試回放的過程,發現就是找不到元素報錯。
由於沒有找到合適的iframe網站,這裡不好用程式碼舉例,簡單文字加圖片來介紹。
自己寫了一個網頁,利用iframe網頁框架,把網頁分成上下兩個不同iframe控制的頁面,把下面html程式碼儲存到一個記事本,然後修改名稱為iframe-demo.html
<html> <head><title>iframe test page</title></head> <body> <iframe id="frame1" src="https://www.baidu.com" name="slider" height="325" width="550"></iframe> <br> <iframe id="frame2" src="http://example.com" name="example" height="325" width="550"></iframe> </body> </html>
用本地瀏覽器開啟如下圖:
用firepath來獲得百度文字輸入框的XPath截圖
看到了紅圈位置不是顯示Top Window,說明你要定位的目標元素在一個iframe裡,如果要操作這個元素,首先需要從預設的Top Window,利用switch_to.frame('iframeid')方法來切換到具體的iframe,然後才能去操作目標元素。
正常百度頁面,文字輸入框截圖
方法介紹:
如果有具體專案頁面利用了iframe, 自己動手寫一下指令碼。driver.switch_to.frame("iframe1") # 操作目標元素,這個目標元素在 iframe1裡面,這裡就是百度文字輸入框輸入文字 driver.switch_to.default_content()