UI自動化 Selenium元素定位

2022-06-06 06:15:10 字數 3090 閱讀 2049

ui自動化要做的就是模擬滑鼠或鍵盤操作,從而執行測試用例的行為。

模擬滑鼠操作更多是通過控制元素進行動作的,而控制元素的第一步就是定位元素。

接下來,結合selenium介紹幾種常見的元素定位方法:

find_element_by_id("")  #

通過id來定位元素

在html中,id是唯一的,通過id但部分元素可能沒有id或id為隨機值。

find_element_by_name("")  #

通過name來定位元素

find_element_by_class_name("")  #

通過class來定位元素

find_element_by_tag_name("")  #

通過tag來定位元素

find_element_by_link_text("")  #

通過link來定位元素

find_element_by_partial_link_text("")  #

通過元素標籤對之間的部分文字進行元素定位

上述幾種元素定位方法是最簡單的,系統登入頁面還可以用用,但遇到頁面元素相對複雜的是較難應用起來的。

經常會遇到元素無id、元素為動態值、相同屬性的元素有多個等情況,此時上述幾種發放就顯得不適用了。

xpath路徑表示式,使用路徑表示式的方式來選取xml文件中的節點或者節點集。

這些路徑表示式和我們在常規的電腦檔案系統中看到的表示式非常相似。

學習位址可以參考:

下面列出了最有用的路徑表示式:

在xpath中,有七種型別的節點:元素、屬性、文字、命名空間、處理指令、注釋以及文件節點(或稱為根節點)。

節點關係有:父(parent)子(children)同胞(sibling)

先輩(ancestor)

後代(descendant)

下面xpath的幾種元素定位方法

find_element_by_xpath("

/html/body/div[2]/div[2]/div[5]/div[1]/div/form/span[2]/input

")

通過元素的絕對路徑進行定位,可以通過chrome瀏覽器-f12-elenents-右鍵元素屬性-xpath-copy full xpath獲取。

但是不推薦,當頁面元素改變時,元素需要重新定位,不利於後期維護。

#

利用元素屬性進行定位

find_element_by_xpath("

//input[@id='**']")

find_element_by_xpath(

"//input[@name='**']")

find_element_by_xpath(

"//input[@class='**']")

find_element_by_xpath(

"//input[@type='**']")

。。。。。。

#利用元素層級屬性進行定位,相對路徑

#根據class屬性唯一值,一層一層定位到元素

find_element_by_xpath("

//div[@class='**'])/table/tbody/tr/td/div")

#利用邏輯運算子進行定位

find_element_by_xpath("

//input[@id='**' and @name='**']")

find_element_by_xpath(

"//input[@id='**' or @name='**']")

#利用contains包含方法進行定位,查詢classname屬性下,classname中包含name的元素

find_element_by_xpath("

//classname

[contains(@classname,'name')]"

)

#利用starts-with,使用開始位置元素進行定位

find_element_by_xpath("

//input[starts-with(@name,'vaule')]")

#利用ends-with,使用結束位置元素進行定位

find_element_by_xpath("

//input[ends-with(@name,'vaule')]")

#利用text()進行元素定位

find_element_by_xpath("")

#其它方法

#string-length()、substring、substring-before()、substring-after()

css選擇器可以更靈活的選擇空間的任意屬性,且css定位速度比xpath定位快。

學習路徑可以參考:

find_element_by_css_selector("

.**") #

通過class定位,css中class選擇器以"."來定義

find_element_by_css_selector("

#**") #

通過id定位,css中id選擇器以"#"來定義

find_element_by_css_selector("

div") #

通過標籤名定位

find_element_by_css_selector("

[name='**']

") #

通過name進行定位

find_element_by_css_selector("

td > div

") #

通過父標籤,查詢子元素中標籤名為div的所有元素

。。。。。。

UI自動化元素定位

1.id定位 find element by id self,id 2.name定位 find element by name self,name 3.class定位 find element by class name self,name 4.tag定位 find element by tag n...

Selenium自動化 Xpath元素定位

最近在教妹子做自動化測試,妹子基礎差,於是想到很多初學自動化的朋友們學習的知識沒有規範化,資訊太過雜亂。所以,本文整理了一些自動化元素定位方式 這次將講xpath定位!什麼是xpath path就是路徑,xpath也類似,就像 在dos中 d auto jack。xpath的使用 xpath的使用方...

selenium自動化測試之元素定位

基本元素定位 1.id定位 定位元素有id屬性 find element by id id屬性的值 2.name定位 定位元素有name屬性 find element by name name屬性的值 3.class name定位 定位元素有class name屬性 find element by ...