用Xpath定位元素的方法總是記不住,經(jīng)常要翻出各種文檔鏈接參考,干脆把需要用到的內(nèi)容整到這個(gè)筆記中方便查找。
Xpath是在XML文檔中定位節(jié)點(diǎn)的語(yǔ)言。使用 XPath 的主要原因之一是當(dāng)想要查找的元素缺少合適的 id 或name屬性。XPath定位器可以用來(lái)絕對(duì)或相對(duì)定位缺少id或name屬性的元素,也可以是用其他屬性進(jìn)行定位。
< html > < body > < form id ="loginForm" > < input name ="username" type ="text" /> < input name ="password" type ="password" /> < input name ="continue" type ="submit" value ="Login" /> < input name ="continue" type ="button" value ="Clear" /> </ form > </ body > < html >
?
form元素可以這樣定位:
1.絕對(duì)定位(最容易受HTML語(yǔ)句改變的影響)
2.HTML中第一個(gè)form元素
3.包含屬性為id,值為“l(fā)oginForm"的form元素
login_form = driver.find_element_by_xpath("/html/body/form[1]") login_form = driver.find_element_by_xpath("http://form[1]") login_form = driver.find_element_by_xpath("http://form[@id='loginForm']")
?
username元素可以這樣定位:
1.form元素的input子元素中包含屬性為name,值為”username“的元素
2.包含屬性為id,值為“l(fā)oginForm"的form元素的第一個(gè)input子元素
3.包含屬性為name,值為”username“的第一個(gè)input元素
username = driver.find_element_by_xpath("http://form[input/@name='username']") username = driver.find_element_by_xpath("http://form[@id='loginForm']/input[1]") username = driver.find_element_by_xpath("http://input[@name='username']")
?
Clear按鈕可以這樣定位:
1.同時(shí)包含屬性為name,值為”continue“和屬性為type,值為”button“的input元素
2.包含屬性為id,值為“l(fā)oginForm"的form元素的第4個(gè)input子元素
clear_button = driver.find_element_by_xpath("http://input[@name='continue'][@type='button']") clear_button = driver.find_element_by_xpath("http://form[@id='loginForm']/input[4]")
附Xpath學(xué)習(xí)鏈接,參見(jiàn): http://www.w3school.com.cn/xpath/index.asp
有助于發(fā)現(xiàn)元素的Xpath的附加組件有:
Xpath Checker ?(交互式的 XPath 表達(dá)式編輯器)
Firebug ?(對(duì)網(wǎng)頁(yè)的CSS、HTML和JavaScript進(jìn)行實(shí)時(shí)編輯、調(diào)試和監(jiān)控)
XPath Helper ?(便于提取、編輯和評(píng)估網(wǎng)頁(yè)的Xpath)
?
英文文檔出處,參見(jiàn) : https://selenium-python.readthedocs.org/en/latest/locating-elements.html
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
