引包部分
from selenium.webdriver.chrome.webdriver import WebDriver#谷歌瀏覽器為例
from selenium.webdriver.common.by import By#本文采用“By.XXX”的方式
import time#經常需要強制等待、顯式等待、隱式等待→等待頁面元素布局重繪
self.dr=WebDriver#在測驗類中實體化1個區域瀏覽器
GlobalDr=WebDriver#或者在測驗類中實體化1個全域瀏覽器
8大定位方式
方式1:By.ID
self.dr.find_element(By.ID,‘XXX’)#通過ID屬性定位唯一元素,多個的話默認取第一個
self.dr.find_elements(By.ID, ‘XXX’)#通過ID屬性定位多個元素,結果為串列
self.dr.find_elements(By.ID, ‘XXX’)[3]#通過ID屬性定位多個元素中的第3個
此處需注意,python中串列索引從0開始,但驅動瀏覽器執行時,相關執行語言中索引是從1開始哦!
方式2:By.NAME
self.dr.find_element(By.NAME,‘XXX’)#通過NAME屬性定位唯一元素,多個的話默認取第一個
self.dr.find_elements(By.NAME, ‘XXX’)#通過NAME屬性定位多個元素,結果為串列
self.dr.find_elements(By.NAME, ‘XXX’)[3]#通過NAME屬性定位多個元素中的第3個
方式3:By.CLASS_NAME
self.dr.find_element(By.CLASS_NAME,‘XXX’)#通過類名定位唯一元素,多個的話默認取第一個
self.dr.find_elements(By.CLASS_NAME, ‘XXX’)#通過類名定位多個元素,結果為串列
self.dr.find_elements(By.CLASS_NAME, ‘XXX’)[3]#通過類名定位多個元素中的第3個
方式4:By.TAG_NAME
self.dr.find_element(By.TAG_NAME,‘XXX’)#通過標簽名定位唯一元素,多個的話默認取第一個
self.dr.find_elements(By.TAG_NAME, ‘XXX’)#通過標簽名定位多個元素,結果為串列
self.dr.find_elements(By.TAG_NAME, ‘XXX’)[3]#通過標簽名定位多個元素中的第3個
方式5:By.LINK_TEXT
self.dr.find_element(By.LINK_TEXT,‘XXX’)#通過超鏈接(a標簽)的文本定位唯一元素,多個的話默認取第一個
self.dr.find_elements(By.LINK_TEXT, ‘XXX’)#通過超鏈接(a標簽)的文本定位多個元素,結果為串列
self.dr.find_elements(By.LINK_TEXT, ‘XXX’)[3]#通過超鏈接(a標簽)的文本定位多個元素中的第3個
方式6:By.PARTIAL_LINK_TEXT
self.dr.find_element(By.PARTIAL_LINK_TEXT,‘XXX’)#通過超鏈接(a標簽)的部分文本定位唯一元素,多個的話默認取第一個
self.dr.find_elements(By.PARTIAL_LINK_TEXT, ‘XXX’)#通過超鏈接(a標簽)的部分文本定位多個元素,結果為串列
self.dr.find_elements(By.PARTIAL_LINK_TEXT, ‘XXX’)[3]#通過超鏈接(a標簽)的部分文本定位多個元素中的第3個
方式7:By.CSS_SELECTOR(幾乎萬用,更切合前端CSS樣式語言)
self.dr.find_element(By.CSS_SELECTOR,‘XXX’)#通過CSS選擇器定位唯一元素,多個的話默認取第一個
self.dr.find_elements(By.CSS_SELECTOR, ‘XXX’)#通過CSS選擇器定位多個元素,結果為串列
self.dr.find_elements(By.CSS_SELECTOR, ‘XXX’)[3]#通過CSS選擇器定位多個元素中的第3個
未完待續
方式8:By.XPATH(幾乎萬用,更切合后端XML語言)
self.dr.find_element(By.XPATH,‘XXX’)#通過XPATH定位唯一元素,多個的話默認取第一個
self.dr.find_elements(By.XPATH, ‘XXX’)#通過XPATH定位多個元素,結果為串列
self.dr.find_elements(By.XPATH, ‘XXX’)[3]#通過XPATH定位多個元素中的第3個
未完待續
總結
1.個人推薦的定位方式的優先級:
ID>NAME>LINK_TEXT>PARTIAL_LINK_TEXT>CLASS_NAME>TAG_NAME>CSS_SELECTOR>XPATH
PS:其實有些公司為了腳本維護方便,人員交流方便,要求員工統一格式,都使用XPATH或者CSS_SELECTOR,博主之前上班的公司就要求全員使用By.XPATH定位,(其實這樣也好,一招鮮,吃遍天,方便了那些有選擇困難癥的小伙伴,比如博主我)
未完待續
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/38071.html
標籤:其他
