前提:元素或屬性必須唯一
八種元素定位方式:
id,name,link_text,partial_link_text,xpath,css,class_name,tag_name
1、id
定位:html規定id
是唯一標識(每個
id都是不一樣的),這類似公民的身份證號,具有很強的唯一性。
定位:name
屬性不是絕對唯一的(乙個頁面內可能存在多個元素的
name
屬性是相同的)
定位:通過鏈結元素的文字內容來精確匹配定位元素,不是絕對唯一的(乙個頁面內可能存在多個鏈結元素的文字內容是相同的)
4、partial_link_text定位:
通過鏈結元素的文字內容來模糊匹配定位元素,不是絕對唯一的(乙個頁面內可能存在多個鏈結元素的文字內容是相同的)
5、xpath
定位:(1)絕對路徑(以
/開頭,從根目錄逐級查詢):【一般不會用到絕對路徑】
copy
某元素的完整
(2)相對路徑(以
//開頭,從網頁的任務標籤開始查詢元素):
① 相對路徑
+索引定位
xpath=//form//span[1]//input
② 相對路徑
+屬性定位
xpath=//input[@autocomplete="off"]
③ 相對路徑
+部分屬性值定位
以什麼開頭:
xpath=//input[starts-with(@autocomplete,'of')]
以什麼結尾:
xpath=//input[substring(@autocomplete,2)='ff']
包含:xpath=//input[contains(@autocomplete,'ff')]
④ 相對路徑
+萬用字元定位(右鍵
copy
複製xpath
,但一般不建議使用)
//*[@id=』kw』]
⑤ 相對路徑
+//span[text=』按搜尋』]
定位:(1)絕對路徑:不會使用
(2)通過id(
#)和class(.
)定位通過
id定位:css=input#kw或
#kw通過
class
定位:css=.s_ipt
或imput.s_ipt
(3)相對路徑:
通過屬性定位:
css=input[autocomplete="off"]
通過部分屬性值定位:
以什麼開頭:
css=input[autocomplete^='of']
以什麼結尾:
css=input[autocomplete$='ff']
包含:css=input[autocomplete*='ff']
通過子節點定位:
css=form#form>span.bg.s_ipt_wr.new-pmd.quickdelete-wrap>input.s_ipt
或替換為空格:
css=div#s-top-left>a:nth-child(2)或將
>
替換為空格:css=div#s-top-left a:nth-child(2)
通過兄弟節點:
css=div#s-top-left>a +a
7、class_name
定位:通過元素的
class
屬性來定位元素,
class
屬性不是絕對唯一的(乙個頁面內可能存在多個元素的
class
屬性是相同的)
8、tag_name
定位:html
是通過tag
來定義功能的,比如
input
是輸入,
table
是**等等。每個元素其實就是乙個
tag,乙個
taghtml
**,可以看到有很多
div,input,a
等tag,
所以很難通過
tag去區分不同的元素。基本上在我們工作中用不到這種定義方法,僅了解就行。
web自動化 元素定位
x 和 都是chrome開發者工具提供的方法定位元素的時候 根據自己的需求定位到唯一 的乙個元素或者符合自己需要的一組元素。絕對路徑 html開頭表示,從html文件的根節點開始進行查詢,直到找到想要的元素 相對路徑 開頭,表示從html文件的任意位置進行查詢,如果在表示式中間出現77表示從 之前的...
web自動化測試之元素定位
貼吧 序號 方式 舉例 1通過id定位 driver.find element by id kw 2通過name定位 find element by name wd 3通過class定位 find element by class name s ipt 4通過xpath定位 find element...
web自動化 元素定位 二
如何定位到下圖第二個 搶投標 有一種方法是利用xpath定位 a href loan loan detail id 7190.html and text 搶投標 但是我們注意到,這個鏈結中的7190是id值,而頁面中的id值是可以變化的,因此當標變化時,我們又得重新寫xpath定位表示式了,那麼,有...