2024现烤现卖热乎的自动化测试之《元素定位大法》最新版本教程
环境配置:
Python版本:Python3.11.8
Selenium版本:Selenium4.18.1
Firfox版本:123.0.1(64位)
元素定位总结 #(1) id #格式---browser.find_element(By.ID, 'kw') #(2) name #格式---browser.find_element(By.NAME, 'wd') #(3) class_name #格式---browser.find_element(By.CLASS_NAME, 's_ipt') #(4) tag_name #格式---browser.find_element(By.TAG_NAME, 'input') #(5) link_text #格式---browser.find_element(By.LINK_TEXT,'京公网安备11000002000001号') #(6) partial_link_text #格式---browser.find_element(By.PARTIAL_LINK_TEXT,'京ICP证030173号') #(7) Xpath #格式---browser.find_element(By.XPATH,'/html/body/div[2]/div[1]/div[5]/div/div/div[3]/ul/li[2]/a/span[2]') #(8) CSS #格式---browser.find_element(By.CSS_SELECTOR,"#kw") #(9) find_element 与 find_elements 区别用法 #find_element---只查找一个元素使用;获取元素.txe内容,href链接内容使用 #find_elements---返回多个元素;返回格式列表;获取指定元素需读取下标browser.find_elements(By.TAG_NAME,'a')[0] #(10) 组合条件定位使用and: 层级+属性、逻辑+属性 #举个栗子 层级+属性---元素Xpath=//*[@id="kw"]and元素id="kw" #browser.find_element(By.XPATH,'//*[@id="kw"]') and browser.find_element(By.ID,"kw") #(11) Xpath扩展 #--(1)文本内容是"xxx"的元素 #--owser.find_element(By.XPATH,"//*[text()='京公网安备11000002000001号']") #--(2)以xxx开头的元素 #browser.find_elements(By.XPATH,'//*[starts-with(@id,"k")]')[0] #--(3)属性包含xxx的元素 #browser.find_element(By.XPATH,'//*[contains(@id,"k")]') #(12) CSS扩展 #css_selector 元素必须用#修饰 #browser.find_element(By.CSS_SELECTOR,"#kw") #---(1) input[type^'p'] ---type属性以字母'P'开头的元素 #如:input[id^='d']---id属性以"d"开头的所有元素 # browser.find_element(By.CSS_SELECTOR,"input[id^='k']") #---(2) input[type$'d'] ---type属性以字母'd'结尾的元素 #如:input[name$='d']---name属性以'd'结尾的所有元素 # browser.find_element(By.CSS_SELECTOR,"input[name$='d']") #---(3) input[type*'w'] ---type属性包含字母'w'的元素 # #如:input[name*='w']---name属性包含'w'的所有元素 # browser.find_elements(By.CSS_SELECTOR,"input[name*='w']")[0]