WebDriver定位元素的方法

2021-10-14 07:58:29 字數 3342 閱讀 9362

本文主要是講解在web頁面中如何定位元素,這是進行自動化操作的前提。

我們主要是要做web自動化,通常乙個web頁面上有輸入框、按鈕、文字鏈結、等元素,自動化測試要做的就是模擬滑鼠和鍵盤來操作這些元素,如單擊、輸入、滑鼠懸停等。操作這些元素的前提是要定位它們,就是找到它們的位置,所以下面可以利用webdriver採用幾種不同的方式去進行元素定位。

id定位find_element_by_id()

name定位find_element_by_name()

tag定位find_element_by_tag_name()

class定位find_element_by_class_name()

link_text定位find_element_by_link_text()

partial link定位find_element_by_partial_link_text()

xpath定位find_element_by_xpath()

css_selector定位find_element_by_css_selector()

它是專門用來定位文字鏈結的,就是頁面上有文字鏈結(元素標籤對之間的文字資訊),可以用link來進行定位

從上面的圖中可以看到,link= 「國家衛健委再次回應春節返鄉問題」,所以相應的方法是:find_element_by_link_text(「國家衛健委再次回應春節返鄉問題」),定位後,就可以進行操作了

partial link定位是對link定位的一種補充,有些文字鏈結比較長,這個時候我們可以取文字鏈結的部分文字進行定位,只要這部分文字可以唯一地標識這個鏈結即可

還是以上面的圖為例:partial_link= 「國家衛健委再次」 (這裡可以隨意擷取文字,只要能唯一匹配到整個語句就好),所以相應的方法是: find_element_by_partial_link_text(「國家衛健委再次回」),定位後,就可以進行操作了

find_element_by_xpth(

"//input[@id='kw']"

), find_element_by_xpth(

"//input[@name='wd']"

), find_element_by_xpth(

"//input[@class='s_ipt']"

), find_element_by_xpth(

"//input[@maxlength='255']"

), find_element_by_xpth(

"//input[@autocomplete='off']"

)

另外一種是:

find_element_by_xpth(

"//*[@id='kw']"

), find_element_by_xpth(

"//*[@name='wd']"

), find_element_by_xpth(

"//*[@class='s_ipt']"

), find_element_by_xpth(

"//*[@maxlength='255']"

), find_element_by_xpth(

"//*[@autocomplete='off']"

)

6.使用text方法

text()方法用於匹配顯示文字資訊

如下圖,對於文字資訊

對應的方法是:find_element_by_xpath("//span[text()=『醫院拒診中高風險地區患者被約談』]")

當然,contains方法和text()方法是可以結合一起使用的

對應的方法是:find_element_by_xpath("//span[contains(text(),『醫院拒診中』)]") (親測有效)

css是一種語言,用來描述html和xml文件的表現,css使用選擇器為頁面元素繫結屬性,它的定位速度比xpath快,但是難度比較大

語法如下:

選擇器                           例子                                           描述               

.class

.s_ipt class選擇器,選擇class

="s_ipt"的所有元素

#id kw id選擇器,選擇id = "kw"的所有元素

** 選擇所有元素

element p 選擇所有

元素element>element div>

input 選擇父元素為

的所有<

input

>元素

element+element div+

input 選擇同一級中緊接在

元素之後的所有<

input

>元素

[attribute=value]

[target=_blank] 選擇target=

"_blank"的所有元素find_element_by_css_selector("[class ^= bg]") 查詢class屬性以"bg"字串開頭的所有元素

find_element_by_css_selector("[class$= wrap]") 查詢class屬性以"wrap"字串結尾的所有元素

find_element_by_css_selector(「form > input:nth-child(2)」) 查詢form標籤下第二個input標籤的元素

以上在web頁面中如何定位元素的各種方式和方法基本就介紹完了,感覺是比較詳細了,而且我都基本親自操作驗證了一遍,如果後面有缺漏或者有新的方法,那我會再進行補充和修改。

WebDriver 定位元素的8種方式

在ui層面的自動化測試開發中,元素的定位與操作是基礎,也是經常遇到的困難所在。webdriver提供了8種定位 id定位 find element by id id值 id屬性是唯一的 1 driver.find element by id loginname clear 使用者名稱輸入框的id屬性...

css selector定位元素

selenium中經常要用css selector定位元素,雖說可以用firefox的firebug firepath直接copy元素的xpath路徑,但有時還是很必要用css selector來定位,也算技多不壓身吧 系統的學習一下,也當是臨陣磨槍。一共8種方式的選擇器。根據元素的標籤定位,如下 ...

CSS Selector定位元素

滴 今日打卡!博主之前寫過一篇關於xpath元素定位的部落格,裡面也有提到過xpath方法和css選擇器方法的比較 今天就補上css選擇器定位筆記。1.css選擇器定位元素 1 標籤選擇器 driver.find element by css selector li 選擇所有 li標籤元素 2 類選...