python自动化和教程_《手把手教你》系列练习篇之2-python+ selenium自动化测试(详细教程)...
1. 簡(jiǎn)介
今天我們還是繼續(xù)練習(xí)練習(xí)基本功,各位小伙伴要耐住住性子,要耐得住寂寞啊,不要急躁,后面你會(huì)感謝你在前邊的不斷練習(xí)的。到后面也是檢驗(yàn)?zāi)闱斑叺膶W(xué)習(xí)成果的一次很好實(shí)踐。
本文介紹如何通過(guò)link text、partial link text、class name和name?來(lái)定位頁(yè)面元素。
2.link text定位元素
我們打開(kāi)網(wǎng)頁(yè),一些可以點(diǎn)擊的鏈接跳轉(zhuǎn)上面的文字,就是link text,用百度首頁(yè)舉例來(lái)看:
在上面圖中,這一排上面的文字都是link text,例如我們要通過(guò)“新聞”這個(gè)文本字段來(lái)定義這個(gè)跳轉(zhuǎn)鏈接元素。
2.1 代碼實(shí)現(xiàn):
2.2 參考代碼:
#coding=utf-8🔥
#1.先設(shè)置編碼,utf-8可支持中英文,如上,一般放在第一行
#2.注釋:包括記錄創(chuàng)建時(shí)間,創(chuàng)建人,項(xiàng)目名稱(chēng)。
'''Created on 2019-11-29
@author: 北京-宏哥 QQ交流群:705269076
Project: python+ selenium自動(dòng)化測(cè)試練習(xí)篇2'''
#3.導(dǎo)入模塊
from selenium importwebdriver
driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)
driver.get("https://www.baidu.com")try:
driver.find_element_by_link_text("新聞")print ('test pass: element found by link text')exceptException as e:print ("Exception found", format(e))
driver.quit()
2.3運(yùn)行結(jié)果
運(yùn)行代碼后,控制臺(tái)打印如下圖的結(jié)果
總結(jié):凡是看到鏈接元素上面有文字描述的都可以采取find_element_by_link_text()方法來(lái)進(jìn)行元素定位。這里提一下前面XPath定位中的知識(shí),通過(guò)text()這個(gè)XPath中的函數(shù)也可以達(dá)到類(lèi)似link text定位的目的。
這個(gè)“新聞”鏈接元素的XPath表達(dá)式可以這樣寫(xiě)://*/div[@id='u1']/a[text()='新聞']
3. partial link text定位元素
這里我們來(lái)介紹如何通過(guò)partial link text來(lái)定位頁(yè)面元素。看到這個(gè),有點(diǎn)和前一篇文字link text有點(diǎn)類(lèi)似。字面意思,確實(shí)和link text相類(lèi)似,partial link text就是選擇這個(gè)元素的link text中一部分字段。
還是用百度首頁(yè)輸入框下有一個(gè)添加首頁(yè)“把百度設(shè)為主頁(yè)”。
3.1代碼實(shí)現(xiàn)
3.2參考代碼
#coding=utf-8🔥
#1.先設(shè)置編碼,utf-8可支持中英文,如上,一般放在第一行
#2.注釋:包括記錄創(chuàng)建時(shí)間,創(chuàng)建人,項(xiàng)目名稱(chēng)。
'''Created on 2019-11-29
@author: 北京-宏哥 QQ交流群:705269076
Project: python+ selenium自動(dòng)化測(cè)試練習(xí)篇2'''
#3.導(dǎo)入模塊
from selenium importwebdriver
driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)
driver.get("https://www.baidu.com")try:
driver.find_element_by_partial_link_text("主頁(yè)").click()print ('test pass: element found by partial link text')exceptException as e:print ("Exception found", format(e))
driver.quit()
3.3運(yùn)行結(jié)果
運(yùn)行代碼后,控制臺(tái)打印如下圖的結(jié)果
為了更好的驗(yàn)證是否找到了“把百度添加到首頁(yè)”這個(gè)元素,我在這個(gè)地方添加了一個(gè)click(),運(yùn)行代碼,可以看到確實(shí)點(diǎn)擊了這個(gè)元素,代表找到了這個(gè)元素。選擇partial link text的時(shí)候,需要選擇一個(gè)比較唯一的字段,來(lái)區(qū)分這個(gè)元素。
4. class name的值來(lái)定位頁(yè)面元素
有時(shí)候,我們?cè)谟胒irepath(不會(huì)的請(qǐng)點(diǎn)這里)查看元素的XPath信息,發(fā)現(xiàn)沒(méi)有可以用來(lái)定位的id信息,這個(gè)時(shí)候我們就需要考慮用其他的可用的來(lái)定位元素。本文介紹如何通過(guò)元素節(jié)點(diǎn)中class name的值來(lái)定位頁(yè)面元素。還是以百度首頁(yè),搜索輸入框定位舉例:
XPath截圖
4.1 代碼實(shí)現(xiàn):
4.2 參考代碼:
#coding=utf-8🔥
#1.先設(shè)置編碼,utf-8可支持中英文,如上,一般放在第一行
#2.注釋:包括記錄創(chuàng)建時(shí)間,創(chuàng)建人,項(xiàng)目名稱(chēng)。
'''Created on 2019-11-29
@author: 北京-宏哥 QQ交流群:705269076
Project: python+ selenium自動(dòng)化測(cè)試練習(xí)篇2'''
#3.導(dǎo)入模塊
from selenium importwebdriver
driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)
driver.get("https://www.baidu.com")try:
driver.find_element_by_class_name("s_ipt")print ('test pass: element found by class name')exceptException as e:print ("Exception found", format(e))
driver.quit()
4.3 運(yùn)行結(jié)果:
運(yùn)行代碼后,控制臺(tái)打印如下圖的結(jié)果
參考意見(jiàn):很多情況下,class利用要比id多,如果class中出現(xiàn)了太長(zhǎng)的字符,和可變化的數(shù)字,那么請(qǐng)回到用XPath定位方法。
5. name的值來(lái)定位元素
這里介紹如何通過(guò)節(jié)點(diǎn)中name的值來(lái)定位這個(gè)web元素。還是來(lái)看百度首頁(yè)搜索輸入框,通過(guò)name的值來(lái)定位。
5.1 代碼實(shí)現(xiàn):
5.2 參考代碼:
#coding=utf-8🔥
#1.先設(shè)置編碼,utf-8可支持中英文,如上,一般放在第一行
#2.注釋:包括記錄創(chuàng)建時(shí)間,創(chuàng)建人,項(xiàng)目名稱(chēng)。
'''Created on 2019-11-29
@author: 北京-宏哥 QQ交流群:705269076
Project: python+ selenium自動(dòng)化測(cè)試練習(xí)篇2'''
#3.導(dǎo)入模塊
from selenium importwebdriver
driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)
driver.get("https://www.baidu.com")try:
driver.find_element_by_name("wd") #這里百度搜索輸入框有name = 'wd'這個(gè)節(jié)點(diǎn)信息
print ('test pass: element found by name value')exceptException as e:print ("Exception found", format(e))
driver.quit()
5.3 運(yùn)行結(jié)果:
運(yùn)行代碼后,控制臺(tái)打印如下圖的結(jié)果
總結(jié):name這個(gè)屬性不是所有的節(jié)點(diǎn)都有,如果有建議采用name的值來(lái)定位,就和by_id, by_class一樣的效果。
6. 小結(jié)
好了,今天的練習(xí)就到這里,希望大家好好的練習(xí)和理解。
您的肯定就是我進(jìn)步的動(dòng)力。如果你感覺(jué)還不錯(cuò),就請(qǐng)鼓勵(lì)一下吧!記得點(diǎn)波?推薦?不要忘記哦!!!
總結(jié)
以上是生活随笔為你收集整理的python自动化和教程_《手把手教你》系列练习篇之2-python+ selenium自动化测试(详细教程)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: jspx格式手机打开_制作手机浏览器显示
- 下一篇: 廖雪峰讲python高阶函数求导公式_高