一、元素定位,定位到了元素但是不跳轉
- 未設定等待時間
- 設定了隐式等待時間,還要再加顯式等待時間
- 看看頁面元素是否有frame或者iframe:driver.switch_to_frame(0),第幾個frame架構括号裡就寫數字幾
- 需要手寫xpath進行定位
二、下拉清單
1.導入(此方法隻适合select元素的,而不适合網頁标簽)
from selenium.webdriver.support.ui import Select 或者
from selenium.webdriver.support.select import Select
法一:直接定位清單框中元素,如:選擇”每頁顯示20 條”
driver.find_element_by_css_selector('xxx').click()
法二:通過index 即索引
se=driver.find_element_by_id('xxx') #xxx為下拉框id
Select(se).select_by_index(2)
法三:通過value
se=driver.find_element_by_id('xxx')
Select(se).select_by_value('20')
本例中Value 即為10,20,50
法四: visible_text
se=driver.find_element_by_id('xxx')
Select(se).select_by_visible_text('每頁顯示50 條')
本例中visible_text 為”每頁顯示10 條”,20 條,50 條
以上方法是實作逐個選取值,若想循環周遊可以先計算清單框總數,再用for 循環
for i in range(len(Select(se).options)):
Select(se).select_by_index(i)
注: 用len 方法求總數Select(se).options,再把index 用變量代替便可。
2.非select标簽的下拉清單
源碼:
要定位UserStory代碼如下:
driver.find_element_by_xpath(".//li[text()='UserStory']").click()
是時候學會自己寫xpath進行定位了
三、使用selenium進行定位時,頁面會出現變動
正常頁面:
但是當單擊複選框時,頁面如下:
試用xpath和class_name進行定位都會出現這種問題,目前不知道原因和解決辦法,以後解決了在更新。