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
Python Selenium環境搭建
安裝python 設定 python 的環境變數 安裝目錄 安裝目錄 scripts 使用 pip安裝 selenium pip install selenium 安裝完python pip工具,在安裝目錄的 scripts 目錄下。在 dos下直接執行 pip install selenium 即...
Python Selenium 學習筆記
1 判斷元素是否存在 try driver.find element.xx a true except a false if a true print 元素存在 elif a false print 元素不存在 2 判斷元素是否顯示 driver.find element by id outputb...
Python Selenium錯誤小結
因為要使用web應用,所以開始用起了,selenium包,安裝倒是挺容易的,但就是出了很多bug。filenotfounderror winerror 2 系統找不到指定的檔案。通過錯誤反饋發現是要把該軟體加到路徑裡面,但是,設定了系統環境變數後發現還是不行,最後,使用了乙個非常原始的方法 brow...