Webdriver常用的元素定位

2022-05-18 20:09:54 字數 2141 閱讀 3717

webdriver常用定位元素的方法有以下八種:

id、name、class name、tag name、link text、partial link text、xpath、class selector

在python中,對應的方法為:

備註:元素定位必須確保該定位方式定位出的元素具有唯一性,若定位出多組元素,需對元素進行篩選,或者調整定位方式。

1、id定位

find_element_by_id("kw")

2、name定位

find_element_by_name("wd")

3、class name定位

find_element_by_class_name("s_ipt")

4、tag name定位

5、link text定位

糯公尺

新聞hao123

地圖貼吧

find_element_by_link_text("新聞")

find_element_by_link_text("地圖")

6、partial link text定位

乙個很長很長很長的新聞

find_element_by_patial_link_text("很長的新聞")

7、xpath定位(重要)

1)直接通過firefox的外掛程式firebug定性定位

2)、通過絕對路徑定位

driver.find_element_by_xpath('/html/body/div[3]/div/div/div/div/form/span/input')

div[3]表示當前層級下的第三個div標籤

這種定位方式比較繁瑣,適用性不強

3)、利用元素屬性定位

drive.find_element_by_xpath("//input[@id='kw']")

//表示當前頁面下的某個目錄,也可以用/*表示整個目錄,input表示標籤名,@id='kw'表示標籤名下id='kw'的元素,除了用id定位,也可以使用

輸入框的其他元素屬性定位。

4)、層級與屬性結合定位

find_element_by_xpath("span[class='bg s_ipt_wr']/input")

5)、使用邏輯運算子定位

若乙個屬性不能唯一區分,可以用邏輯運算子將多個屬性結合起來查詢元素

如上所示,若只是通過單方式去定位元素,元素不唯一,需將元素結合起來一起定位:

find_element_by_xpath("/*[@id='aa1' and @class='bb1']")

8、css selector定位(重要)

css選擇器的常見語法

使用方式如下:

1)、通過class定位

find_element_by_css_selector('.s_ipt')

2)、通過id定位

find_element_by_css_selector('#kw')

3)、共拓標籤名定位

find_element_by_css_selector('input'),此方式定位不適用

4)、通過屬性定位

find_element_by_css_selector('[name="wd"]')

5)、通過父子關係定位

find_element_by_css_selector("form > span"),其中'>'可以用空格代替,為了增加辨識,最好使用'>'

6)、通過組合定位的方式

即通過class或者id一起組合定位。

除此之外,也可以通過by來宣告定位,在使用之前需先導入by類

from selenium.webdriver.common.by

find_elements_by.....此時是定位一組元素,比如根據tag name來定位時,可以先定位一組元素,通過find_elements_by_tag_name(' ')來進行篩選。

WebDriver定位元素的方法

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

webdriver 元素定位

1 讓程式操作指定操作,就必須先找到此元素 2 程式不像人類用眼睛直接定位到元素 3 webdriver提供了八種定位元素方式 1 id id屬性 2 name name屬性 3 class name class屬性 4 tag name tag標籤 5 link text 超連結文字 6 part...

WebDriver元素高階查詢

1.部分屬性 對於頁面上有動態變化的屬性的元素是非常有用的 driver.findelement by.cssselector input id ctrl 匹配到 id頭部 如 ctrl 12 driver.findelement by.cssselector input id ctrl 匹配到 i...