selenium元素定位

2021-10-02 15:52:44 字數 1997 閱讀 1882

單數形式

複數形式,返回的是乙個列表

使用範圍:

a.元素有id屬性

b.id不是動態的,為固定值

driver.find_element_by_id(

"id屬性值"

)

使用範圍:

a.元素有id屬性

b.id不是動態的,為固定值

語法:

driver.find_element_by_name(

"name屬性值"

)

使用範圍:

a.元素有id屬性

b.id不是動態的,為固定值

語法:

driver.find_element_by_class_name(

"class屬性值"

)

使用範圍:

a.當定位標籤在html中為唯一標籤

b.當定位標籤在html中順序為第乙個

c.tag_name定位通常都使用複數形式

語法:

driver.find_element_by_tag_name(

"標籤名"

)

①link_text

使用範圍:

專門用來定位鏈結

語法

driver.find_element_by_link_text(

"鏈結的全部文字"

)

②partial_link_text

使用範圍:

定位鏈結,使用模糊匹配的方式定位鏈結,使用頻率高

語法:

driver.find_element_by_partial_link_text(

"鏈結的部分連貫文字"

)

語法:

driver.find_element_by_xpath(

"xpath表示式"

)

xpath表示式:

①標籤和屬性定位

//標籤名[@屬性名=屬性值]
②層級定位

//父標籤名[@父標籤屬性名=屬性值]

/子標籤名

③索引

//父標籤名[@父標籤屬性名=屬性值]

/子標籤名[索引值]

#索引從1開始

④邏輯

//標籤名[@屬性名1

=屬性值1

and @屬性名2

=屬性值2

]

//標籤名[contains(@屬性名,

'部分連貫屬性值'

)]

語法:

driver.find_element_by_css_selector(css表示式)
①標籤+屬性

id: #id屬性值

class: .class屬性值

標籤名[屬性名=屬性值]

②層級

父標籤[父標籤屬性名=屬性值]

>子標籤

層級關係:

大於符號

空格③索引

父標籤:nth-child(索引)

#獲取父標籤下第幾個子標籤

子標籤名:nth-of-

type

(索引)

#獲取父標籤下第幾個指定名稱的子標籤

④邏輯

標籤名[屬性名1

=屬性值1

][屬性名2

=屬性值2

]#千萬不能空格

⑤模糊匹配

*匹配任意

標籤[屬性名*=

'部分連貫屬性值'

]

^匹配開頭

$匹配結尾

Selenium 元素定位

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

selenium元素定位

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

selenium元素定位

1.driver.find element by id id vaule 2.driver.find element by name name vaule 通過name定位元素 因為name屬性可能存在重名的情況,如果重名的話會優先定位該name值第一次出現的元素,可能就不是我們的目標元素 3.dr...