selenium 自動化基礎知識(各類定位)

元素的定位javascript

webdriver 提供了一不少對象定位方法  例如:css

[ id ] , name , class name , link text , partial link text , tag name, xpath , css selectorjava

例如:下圖python

# -*- coding: utf-8 -*-
# 經過id方式定位 browser.find_element_by_id("kw").send_keys("selenium")
# 經過name方式定位 browser.find_element_by_name("wd").send_keys("selenium")
# 經過tag name方式定位 browser.find_element_by_tag_name("input").send_keys("selenium")
# 經過class name 方式定位 browser.find_element_by_class_name("s_ipt").send_keys("selenium")
# 經過CSS方式定位 browser.find_element_by_css_selector("#kw").send_keys("selenium")
# 經過xphan方式定位 browser.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")

還能夠 經過css 屬性     獲取web

find_element_by_css_selector("#kw")
經過 find_element_by_css_selector( )函數,選擇取百度輸入框的 id 屬性來定義 
也能夠取 name 屬性
<a href="http://news.baidu.com" name="tj_news">新 聞</a> driver.find_element_by_css_selector("a[name=\"tj_news\"]").click() 能夠取 title 屬性 <a onclick="queryTab(this);" mon="col=502&pn=0" title="web" href="http://www.baidu.com/">網頁</a> driver.find_element_by_css_selector("a[title=\"web\"]").click() 也能夠是取..: <a class="RecycleBin xz" href="javascript:void(0);"> driver.find_element_by_css_selector("a.RecycleBin").click()

XPath 定位函數

 XPath 是一種在 XML 文檔中定位元素的語言。由於 HTML 能夠看作 XML 的一種實現, 因此 selenium 用戶但是使用這種強大語言在 web 應用中定位元素。ui

 

xpath:attributer (屬性) 
driver.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")
#input標籤下id =kw的元素 xpath:idRelative (id相關性)
driver.find_element_by_xpath("//div[@id='fm']/form/span/input").send_keys("s elenium")
#在/form/span/input 層級標籤下有個div標籤的id=fm的元素 driver.find_element_by_xpath("//tr[@id='check']/td[2]").click()
# id爲'check' 的tr ,定位它裏面的第2個td xpath:position (位置)
driver.find_element_by_xpath("//input").send_keys("selenium")
driver.find_element_by_xpath("//tr[7]/td[2]").click()
#第7個tr 裏面的第2個td xpath: href (水平參考)
driver.find_element_by_xpath("//a[contains(text(),'網頁')]").click()
#在a標籤下有個文本(text)包含(contains)'網頁' 的元素 xpath:link driver.find_element_by_xpath("//a[@href='http://www.baidu.com/']").click()
#有個叫a的標籤,他有個連接href='http://www.baidu.com/ 的元素

link 定位(有時候不是一個輸入框也不是一個按鈕,而是一個文字連接,咱們能夠經過 link )this

 

from selenium import webdriver 
browser = webdriver.Firefox()
browser.get("http://www.baidu.com")
browser.find_element_by_link_text("貼 吧").click()
browser.quit()

  通常一個頁面上不會出現相同的文件連接,經過文字連接來定位也是一種簡單有效 的定位方式spa

 Partiallinktext 定位code

經過部分連接定位,這個有時候也會用到,我尚未想到很好的用處。拿上面的例 子,我能夠只用連接的一部分文字進行匹配:

 browser.find_element_by_partial_link_text("貼").click()

#經過find_element_by_partial_link_text() 函數,我只用了「貼」字,腳本同樣找到了"貼 吧 " 的連接

 #  源自 蟲師

相關文章
相關標籤/搜索