Python+selenium——元素定位學習筆記

Python+Selenium學習筆記之元素定位

書籍學習:《Selenium2 自動化測試實戰——基於Python語言》P69-P83

定位方法 類型 釋義 格式與實例 優缺點
id定位 屬性 HTML規定Id屬性在HTML文檔中必須是唯一的,但是可能存在頁面上的多個元素的id相同

格式:find_element_by_id("")

find_element_by_id("kw")

定位不到唯一的元素
name定位 屬性 HTML規定name來指定元素的名稱,name的屬性值可以不唯一

格式:find_element_by_name("")

find_element_by_name("wd")

定位不到唯一的元素;不唯一,不必要
class定位 屬性 HTML規定class來指定元素的類名

格式:find_element_by_class_name("")

find_element_by_class_name("s_ipt")

定位不到唯一的元素
tag定位 屬性 tag不唯一,一個tag用來定義一類功能,因此重複性強

格式:find_element_by_tag_name("")

find_element_by_tag_name("input")

定位不到唯一的元素,重複性強
link定位 屬性 定位文本鏈接

格式:find_element_by_link_name("")

find_element_by_link_name("新聞")

定位不到唯一的元素
partial link定位 屬性 模糊定位,對於文本較長的鏈接,可選取一部分文本進行定位

格式:find_element_by_partial_link_text("")

find_element_by_partial_link_text("很長")

定位不到唯一的元素
Xpath定位 絕對路徑 Xpath用標籤名的層級關係來定位元素的絕對路徑:最外層是html->body->標籤

格式:find_element_by_xpath("")

div[2]:當前層級下的第二個div

find_element_by_xpath("/html/body/div/div[2]/div/div/div/from/span[2]/input")

繁瑣
利用元素屬性

//:當前頁面的某個目錄下

input:定位元素的標籤名

[@id='kw']:元素id等於kw

*:不想制定標籤名

格式:1.find_element_by_xpath("//*[@屬性='']")

2.find_element_by_xpath("//input[@屬性='']")

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

find_element_by_xpath("//*[@class='bg s_btn']")

xpath不侷限於id、name、class,元素的任意屬性值都可以
層級與屬性 某一個元素沒有可利用的屬性值,可查找上一級屬性

格式:find_element_by_xpath("//爺爺/父親/兒子")

實例:find_element_by_xpath("//form[@id='form']/span/input")等價於

find_element_by_id("kw")

find_element_by_xpath("//form[@id='form']/span[2]/input")等價於

find_element_by_id("su")

是絕對路徑的一種寫法
邏輯運算符 如果屬性不能唯一地區分一個元素,可以使用邏輯運算符連接多個屬性來查找元素 find_element_by_xpath("//input[@id='kw' and @class='su']/span/input")  
CSS定位 通過Class屬性 點號(.)表示通過class屬性定位元素

格式:find_element_by_css_selector(".")

實例:find_element_by_css_selector(".s_ipt")

 

 
通過id屬性 井號(#)表示通過id屬性定位元素

格式:find_element_by_css_selector("#")

實例:find_element_by_css_selector("#kw")

 
通過標籤名  

格式:find_element_by_css_selector("")

實例:find_element_by_css_selector("input")

 

 

通過父子關係  

find_element_by_css_selector("span>input")

父元素爲span,子元素爲input

 
通過屬性  

find_element_by_css_selector("[autocomplete=off]")

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

find_element_by_css_selector('[type="submit"]')

 
組合定位  

find_element_by_css_selector("form.fm>span>input.s_ipt")

說明:標籤form的class屬性值fm下面的span標籤下面的Input標籤的class屬性值s_ipt

find_element_by_css_selector("form#form>span>input#kw")

說明:標籤form下的id值爲form下面的span標籤下面的Input標籤的id值爲kw

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章