W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
?XPath
?是用來定位?XML?文檔節(jié)點(diǎn)的語言。不過HTML可以看成是XML(XHTML)的一種實(shí)現(xiàn)。Selenium用戶可以使用這個(gè)強(qiáng)力的語言來定位Web應(yīng)用的元素。 ?XPath
?拓展了用?id
?或者?name
?屬性來定位的單一方法,開創(chuàng)了許多可能性,例如定位頁面的第三個(gè)復(fù)選框。
用?XPath
?的主要理由之一,就是你想定位的元素沒有合適的?id
?或者?name
?屬性的時(shí)候,你可以用?XPath
?來對元素進(jìn)行絕對定位(不推薦)或者把這個(gè)元素和另外一個(gè)有確定?id
?或者?name
?的元素關(guān)聯(lián)起來(即相對定位)。?XPath
?定位器也可以用來找出那些具有?id
?,?name
?以外屬性的元素。
絕對的?XPath
?定位包含了從HTML根節(jié)點(diǎn)起的所有元素,并且一些輕微的改變就會(huì)失效。而用?id
?或者?name
?屬性來找到一個(gè)靠近的元素(比較理想的是父元素),這樣你就可以依靠他們的相對關(guān)系來確定目標(biāo)元素的位置。這種情況改變的可能就小了很多了,我們寫的測試程序也會(huì)更可靠。
再來看一個(gè)實(shí)例:
<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
?元素可以這樣定位:
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']")
(譯者注:這里下標(biāo)是從1開始的)
form
?元素id
?屬性為?'loginForm'
?的?form
?元素?username
?元素可以這樣定位:
username = driver.find_element_by_xpath("http://from[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']")
form
?元素的 ?name
?屬性是?'username'
?的?input
?子元素id
?屬性為?'loginForm'
?的?form
?元素的第一個(gè)?input
?子元素name
?屬性為?'username'
?的第一個(gè)?input
?元素?'clear'
?按鈕可以這樣定位:
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]")
type
?屬性為?'button'
?,?name
?屬性為?'continue'
?的第一個(gè)?input
?元素id
?為?'loginForm'
?的表單的第四個(gè)?input
?子元素這些例子只覆蓋了一些基本的使用情況,如果想學(xué)習(xí)更具體的,推薦下面這些地方:
另外,善用開發(fā)者工具也可以幫助我們測試,Chrome和Firefox瀏覽器的F12開發(fā)者工具都有很好的調(diào)試支持,可以直接查看元素的Xpath等定位器。
注:Firebug現(xiàn)在已經(jīng)內(nèi)置集成在Firefox DevTools中
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: