天天看點

實踐過程中遇到的小問題(一)

一、元素定位,定位到了元素但是不跳轉

  1. 未設定等待時間
  2. 設定了隐式等待時間,還要再加顯式等待時間
  3. 看看頁面元素是否有frame或者iframe:driver.switch_to_frame(0),第幾個frame架構括号裡就寫數字幾
  4. 需要手寫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進行定位都會出現這種問題,目前不知道原因和解決辦法,以後解決了在更新。

繼續閱讀