webdriver常用定位元素的方法有以下八種:
id、name、class name、tag name、link text、partial link text、xpath、class selector
在python中,對應的方法為:
備註:元素定位必須確保該定位方式定位出的元素具有唯一性,若定位出多組元素,需對元素進行篩選,或者調整定位方式。
1、id定位
find_element_by_id("kw")
2、name定位
find_element_by_name("wd")
3、class name定位
find_element_by_class_name("s_ipt")
4、tag name定位
5、link text定位
糯公尺find_element_by_link_text("新聞")新聞hao123
地圖貼吧
find_element_by_link_text("地圖")
6、partial link text定位
乙個很長很長很長的新聞find_element_by_patial_link_text("很長的新聞")
7、xpath定位(重要)
1)直接通過firefox的外掛程式firebug定性定位
2)、通過絕對路徑定位
driver.find_element_by_xpath('/html/body/div[3]/div/div/div/div/form/span/input')
div[3]表示當前層級下的第三個div標籤
這種定位方式比較繁瑣,適用性不強
3)、利用元素屬性定位
drive.find_element_by_xpath("//input[@id='kw']")
//表示當前頁面下的某個目錄,也可以用/*表示整個目錄,input表示標籤名,@id='kw'表示標籤名下id='kw'的元素,除了用id定位,也可以使用
輸入框的其他元素屬性定位。
4)、層級與屬性結合定位
find_element_by_xpath("span[class='bg s_ipt_wr']/input")
5)、使用邏輯運算子定位
若乙個屬性不能唯一區分,可以用邏輯運算子將多個屬性結合起來查詢元素
如上所示,若只是通過單方式去定位元素,元素不唯一,需將元素結合起來一起定位:find_element_by_xpath("/*[@id='aa1' and @class='bb1']")
8、css selector定位(重要)
css選擇器的常見語法
使用方式如下:
1)、通過class定位
find_element_by_css_selector('.s_ipt')
2)、通過id定位
find_element_by_css_selector('#kw')
3)、共拓標籤名定位
find_element_by_css_selector('input'),此方式定位不適用
4)、通過屬性定位
find_element_by_css_selector('[name="wd"]')
5)、通過父子關係定位
find_element_by_css_selector("form > span"),其中'>'可以用空格代替,為了增加辨識,最好使用'>'
6)、通過組合定位的方式
即通過class或者id一起組合定位。
除此之外,也可以通過by來宣告定位,在使用之前需先導入by類
from selenium.webdriver.common.by
find_elements_by.....此時是定位一組元素,比如根據tag name來定位時,可以先定位一組元素,通過find_elements_by_tag_name(' ')來進行篩選。
WebDriver定位元素的方法
本文主要是講解在web頁面中如何定位元素,這是進行自動化操作的前提。我們主要是要做web自動化,通常乙個web頁面上有輸入框 按鈕 文字鏈結 等元素,自動化測試要做的就是模擬滑鼠和鍵盤來操作這些元素,如單擊 輸入 滑鼠懸停等。操作這些元素的前提是要定位它們,就是找到它們的位置,所以下面可以利用web...
webdriver 元素定位
1 讓程式操作指定操作,就必須先找到此元素 2 程式不像人類用眼睛直接定位到元素 3 webdriver提供了八種定位元素方式 1 id id屬性 2 name name屬性 3 class name class屬性 4 tag name tag標籤 5 link text 超連結文字 6 part...
WebDriver元素高階查詢
1.部分屬性 對於頁面上有動態變化的屬性的元素是非常有用的 driver.findelement by.cssselector input id ctrl 匹配到 id頭部 如 ctrl 12 driver.findelement by.cssselector input id ctrl 匹配到 i...