Python腳本Selenium及頁面Web元素定位詳解

Selenium特點

開源,免費

多瀏覽器支持:firefox、chrome、IE

多平臺支持:linux 、windows、MAC

多語言支持:java、python、ruby、php、C#、

對web頁面有良好的支持

簡單(API 簡單)、靈活(用開發語言驅動)

支持分佈式測試用例執行一、

八種定位方式

1、driver.find_element_by_xpath(value)

可以使用自帶的copy xpath 進行定位
不推薦使用這種方法進行元素定位,後續開發修改代碼路徑發生變化就需要重新進行定位

// 使用xpath進行定位
from selenium import webdriver
driver = webdriver.Chrome() //打開谷歌
driver.get("http://www.baidu.com") //打開百度鏈接
//通過id定位到輸入框的位置,send_keys('') 往輸入框填寫內容
driver.find_element_by_name("wd").send_keys("Selenium八大元素定位")
//通過id定位到按鈕的位置並進行點擊,click() 點擊操作
driver.find_element_by_id("su").click()
//通過xpath定位獲取元素位置
driver.find_element_by_xpath('//*[@id="2"]/h3/a').click()
 

利用元素屬性進行xpath定位

// 利用元素屬性進行xpath定位
from selenium import webdriver
driver = webdriver.Chrome() //打開谷歌
driver.get("http://www.baidu.com") //打開百度鏈接
//通過id定位到輸入框的位置,send_keys('') 往輸入框填寫內容
driver.find_element_by_name("wd").send_keys("Selenium八大元素定位")
//通過id定位到按鈕的位置並進行點擊,click() 點擊操作
driver.find_element_by_id("su").click()
//通過元素屬性進行xpath定位  元素的值需要是唯一的
driver.find_element_by_xpath('//a[@href="https://www.baidu.com/link?url=whqbCegRZQsSTccYyuTdx3JumdN0qSFUFOo_xM_ESykWekftGjVFXAq55MMqjvQL0NG7iI1l6irIW_vdPN7h-K&wd=&eqid=d07979d2000631b10000000661443a3f" rel="external nofollow" ]').click()
 

2、driver.find_element_by_css_selector(value)

// 搜索百度使用f12定位到輸入框的位置
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
 
from selenium import webdriver
driver = webdriver.Chrome() //打開谷歌
driver.get("http://www.baidu.com") //打開百度鏈接
//標簽名及屬性(含屬性值)組合定位,方式有很多不一一舉例
driver.find_element_by_css_selector('input[name="wd"]').send_keys("Selenium八大元素定位")
 

3、driver.find_element_by_id(value)

// 搜索百度使用f12定位到按鈕的位置
<input type="submit" id="su" value="百度一下" class="bg s_btn">
// 使用id 定位到輸入框的位置
from selenium import webdriver
driver = webdriver.Chrome() //打開谷歌
driver.get("http://www.baidu.com") //打開百度鏈接
//通過id定位到按鈕的位置並進行點擊,click() 點擊操作
driver.find_element_by_id("su").click()

4、driver.find_element_by_name(value)

// 搜索百度使用f12定位到輸入框的位置
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
 
// 使用name 定位到輸入框的位置
from selenium import webdriver
driver = webdriver.Chrome() //打開谷歌
driver.get("http://www.baidu.com") //打開百度鏈接
//通過id定位到輸入框的位置,send_keys('') 往輸入框填寫內容
driver.find_element_by_name("wd").send_keys("Selenium八大元素定位")
 

5、driver.find_element_by_class_name(value)

// 搜索百度使用f12定位到輸入框的位置
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
 
// 使用name 定位到輸入框的位置
from selenium import webdriver
driver = webdriver.Chrome() //打開谷歌
driver.get("http://www.baidu.com") //打開百度鏈接
driver.find_element_by_class_name("s_ipt").send_keys("Selenium八大元素定位")
 

6、driver.find_element_by_tag_name(value)

// 使用標簽名進行定位
from selenium import webdriver
driver = webdriver.Chrome() //打開谷歌
driver.get("http://www.baidu.com") //打開百度鏈接
driver.find_element_by_tag_name("input")//通過標簽名去定位,不推薦重復率很高
 

7、driver.find_element_by_link_text(value)

// 搜索百度使用f12定位到按鈕的位置
<a href="http://news.baidu.com" rel="external nofollow"  rel="external nofollow"  target="_blank" class="mnav c-font-normal c-color-t">新聞</a>
 
//此定位方式主要是對超鏈接進行定位,填寫的內容是完整的超鏈接文字
from selenium import webdriver
driver = webdriver.Chrome() //打開谷歌
driver.get("http://www.baidu.com") //打開百度鏈接
//此定位方式主要是對超鏈接進行定位,也就是html中的<a>標簽,括號中填寫的值是完整的超鏈接文字
driver.find_element_by_link_text("新聞").click()
 

8、driver.find_element_by_partial_link_text(value)

// 搜索百度使用f12定位到按鈕的位置
<a href="http://news.baidu.com" rel="external nofollow"  rel="external nofollow"  target="_blank" class="mnav c-font-normal c-color-t">新聞</a>
 
//此定位方式主要是對超鏈接進行定位,填寫的內容是部分的超鏈接文字
from selenium import webdriver
driver = webdriver.Chrome() //打開谷歌
driver.get("http://www.baidu.com") //打開百度鏈接
//此定位方式主要是對超鏈接進行定位,也就是html中的<a>標簽,括號中填寫的值是部分的超鏈接文字
driver.find_element_by_partial_link_text("新").click()
 

以上就是Python腳本Selenium及頁面Web元素定位詳解的詳細內容,更多關於腳本Selenium頁面Web元素定位的資料請關註WalkonNet其它相關文章!

推薦閱讀: