對於一個自動化的初學者來講會很常見的遇到元素明明存在卻始終定位不到,web
從而致使腳本報錯,固然定位不到元素的緣由不少,框架
其中一種就是多層框架iframe致使的ui
下方截圖示意:spa
下方爲寫腳本時候的示例並其中還包含了下拉框定位問題orm
惜陽在開始寫此模塊自動化的時候,想要定位「審覈狀態「的下拉框但沒有注意到iframe問題,致使報錯報的本身都懷疑人生blog
後來才發現還有iframe,因而正確代碼以下:element
#首先進入要操做的iframe模塊iframe
iframe=driver.find_element_by_xpath("//div[@class='main_right_wrap']/iframe")
#以後用switch_to.frame()就能夠了:selenium
#注意:這裏在網上查了不少資料,大多用的switch_to_frame(),it
#因爲這種方法已通過時,因此會在你使用的時候有刪除線
#因此使用switch_to.frame()就行了
driver.switch_to.frame(iframe)
#最後要說下下拉框選擇這裏要調用到select:
#首先調用select
from selenium.webdriver.support.ui import Select
#以後定位select位置
select1=driver.find_element_by_xpath('//div[@class="form_box_singel_block"]/span/select')
#以後再選擇select文本使用了「select_by_visible_text」,
#固然也可使用其餘方法例如value值「select_by_value」或者其餘方法這裏就不一一介紹了網上都有
#注意:上方代碼截圖只是是將定位select和選擇select兩步寫在了一塊兒
Select(select1).select_by_visible_text("待審覈")