selenium元素定位Xpath

2022-06-10 04:24:07 字數 1406 閱讀 8080

1.絕對路徑定位:

用標籤的層級關係來定位元素,最外層語言為html,接著是body,一級一級的往下找,如果同一級,有多個相同的標籤,那麼按照上下順序確定第幾個,例:div[2]表示當前層級下第二個div:

2.元素屬性定位

利用元素的屬性來定位元素:find_element_by_xpath("//元素名或*[@屬性名=『屬性值』]/元素名2)

find_element_by_xpath("//input[@name='rn'])

find_element_by_xpath("//*[@type='hidden']")

3.層級與屬性結合

如果乙個元素沒有唯一的標識,那麼可以找它上級的元素,如果有也可以拿來用

find_element_by_xpath("//span[@class='bg s_ipt_wr']/input"):通過父元素定位到子元素

find_element_by_xpath("//from[@id='from']/span/input「):通過爺爺元素定位到孫元素

4.使用邏輯運算子

邏輯運算子and連線多個屬性來查詢元素,表示必須同時滿足多個條件來定位元素(如果乙個元素不能定位到元素,那就多乙個元素,如果再不行就再多乙個元素)

find_element_by_xpath("//input[@id='from' and @name='f']/span/input")

5.使用contains方法

用於匹配乙個屬性中包含的字串

例如:span標籤的class屬性為"bg s_ipt_wr"(上圖標識數字10的位置)

find_element_by_xpath("//span[contains(@class,'bg s_ipt_wr')]/input)"

6.使用text()方法

用於匹配顯示文字資訊

find_element_by_xpath("//a[@text()='新聞']")

7.contains和text()結合使用:

find_element_by_xpath("//a[contains(text()='乙個很長的')]")

#等效於 partial link 定位文字

find_element_by_partial_link_text("乙個很長的")

Selenium 元素定位

ui自動化中元素的定位是最最基本,但也是最讓人頭痛的地方。控制項的動態載入,屬性的動態生成抑或因為開發的懶而造成控制項的識別問題總是自動化測試的噩夢。webdriver作為主流的網頁測試工具提供了非常豐富的識別控制項的方法。這次在寫自動化庫的時候也遇到各種定位問題,著實抓狂了一陣,但最終都解決了。雖...

selenium元素定位

單數形式 複數形式,返回的是乙個列表 使用範圍 a.元素有id屬性 b.id不是動態的,為固定值 driver.find element by id id屬性值 使用範圍 a.元素有id屬性 b.id不是動態的,為固定值 語法 driver.find element by name name屬性值 ...

selenium元素定位

一,元素定位方式 from selenium import webdriver from selenium.webdriver.support import expected conditions as ec import time driver webdriver.chrome driver.ge...