Python3.x:Selenium中的webdriver進行頁面元素定位
阿新 • • 發佈:2018-01-28
bsp 文本框 python3 selector link 得到 find ews ron
Python3.x:Selenium中的webdriver進行頁面元素定位
頁面上的元素就像人一樣,有各種屬性,比如元素名字,元素id,元素屬性(class屬性,name屬性)等等。webdriver就是利用元素的這些屬性來進行定位的。
可以用於定位的常用的元素屬性:
- id
- name
- class name
- tag name
- link text
- partial link text
- xpath
- css selector
對應於webdriver中的定位一個元素方法分別是:
- driver.find_element_by_name()
- driver.find_element_by_id()
- driver.find_element_by_class_name()
- driver.find_element_by_tag_name()
- driver.find_element_by_link_text()
- driver.find_element_by_partial_link_text()
- driver.find_element_by_xpath()
- driver.find_element_by_css_selector()
相應的webdriver中的 定位一組元素的方法:
- driver.find_elements_by_name()
- driver.find_elements_by_id()
- driver.find_elements_by_class_name()
- driver.find_elements_by_tag_name()
- driver.find_elements_by_link_text()
- driver.find_elements_by_partial_link_text()
- driver.find_elements_by_xpath()
- driver.find_elements_by_css_selector()
使用示例:
- id 和name 定位
#id driver.find_element_by_id(‘kw‘) #name driver.find_element_by_name(‘tj_trnews‘)
- class name和tag name定位
driver.find_element_by_class_name("s_ipt")
- link text 與partial link text 定位
#通過linx text定位 find_element_by_link_text("新聞") find_element_by_link_text("貼吧") #通過partail link text定位 find_element_by_link_text("新") find_element_by_link_text("貼")
- XPath 定位
‘‘‘ XPath是一種文檔定位語言。因為HTML可以看做是XML的一種實現,所以selenium用戶可使用這種強大的語言在web應用中定位。 絕對路徑方法: 從根元素寫起,當元素層級很深的時候,路徑寫的會很長,閱讀性不好,也很難維護。不建議使絕對路徑這樣的方法。 相對路徑方法: 通過Firebug很容易得到相對路徑的xpath,打開Firebug插件,在頁面上的搜索文本框,就可以顯示出xpath了; ‘‘‘ #通過xpath尋找,任意(*代表)id屬性為’kw‘的元素 driver.find_element_by_xpath("//*[@id=‘kw‘]").click() #通過xpath尋找,任意(*代表)input屬性為’kw‘的元素 driver.find_element_by_xpath("//input[@id=‘kw‘]").click() #需要根據上級目錄的屬性來定位當前元素 #通過上一級目錄的id 屬性定位 find_element_by_xpath("//span[@id=’input-container’]/input") #通過上三級目錄的id 屬性定位 find_element_by_xpath("//div[@id=’hd’]/form/span/input") #通過上三級目錄的name 屬性定位 find_element_by_xpath("//div[@name=’q’]/form/span/input")
- CSS定位
#這種定位方法是比較難理解
Python3.x:Selenium中的webdriver進行頁面元素定位