Web自動化之元素定位

2022-09-08 11:42:08 字數 2899 閱讀 9116

前提:元素或屬性必須唯一

八種元素定位方式:

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定位表示式了,那麼,有...