1. 程式人生 > 其它 >selenium(2):元素定位

selenium(2):元素定位

Selenuim+Python之元素定位總結及例項說明

網頁自動化最基本的要求就是要定位到各個元素,然後才能對該元素進行各種操作(輸入,點選,清除,提交等),所以筆者今天來總結下Selenuim+Python最基本的幾種定位方式及例項說明,希望能幫助到大家。

通過XPath定位元素

XPath是一種XML文件中定位元素的語言。該定位方式也是比較常用的定位方式。

使用:find_element_by_xpath("XPath")

例項:

8.1通過屬性定位元素

find_element_by_xpath("//標籤名[@屬性='屬性值']")

id屬性:

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

class屬性:

find_element_by_xpath("//input[@class='s_ipt']")

name屬性:

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

maxlength屬性:

find_element_by_xpath("//input[@maxlength='255']")

8.2通過標籤名定位元素

指所有input標籤元素

find_element_by_xpath("//input")

8.3父子定位元素

查詢有父親元素的標籤名為span,它的所有標籤名叫input的子元素

find_element_by_xpath("//span/input")

8.4根據元素內容定位元素(非常實用)

find_element_by_xpath("//p[contains(text(),'京公網')]")

<p id="jgwab">
<i class="c-icon-jgwablogo"></i>
京公網安備11000002000001號
</p>

注:contains的另一種用法

//input[contains(@class,'s')]

說明class屬性包含s的元素。

8.5組合定位元素

//父元素標籤名/標籤名的屬性值:指的是span下的input標籤下class屬性為s_ipt的元素

find_element_by_xpath("//span/inpu

t[@class='s_ipt']")

多個屬性組合定位(挺常用的)

指的是input標籤下id屬性為kw且name屬性為wd的元素

find_element_by_xpath("//input[@class='s_ipt'and@name='wd']")

指的是p標籤下內容包含“京公網”且id屬性為jgwab的元素

find_element_by_xpath("//p[contains(text(),'京公網') and @id='jgwab']")