自動化測試(一)定位元素方法

WebDriver提供了8種元素定位方法。

以百度搜索頁面爲例,環境:selenium3+python3.7

from selenium import webdriver

driver_in = webdriver.Chrome("chromedriver安裝所在路徑")
driver_in.get("https://www.baidu.com/") 

1、id定位

在輸入框輸入hello world

<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
Inputt=driver_in.find_element_by_id("kw")
Inputt.send_keys("hello world")

2、name定位

在輸入框輸入hello world

Inputt=driver_in.find_element_by_name("wd")
Inputt.send_keys("hello world")

3、tag定位

html使用tag來定義不同頁面的元素。例如,input(定義輸入框),a(定義超鏈接),table(定義表格),div(定義分區)……

一般使用tag定義一類功能,所以實際上去定義單個元素概率很低。

#執行之後會報錯
Inputt=driver_in.find_element_by_tag_name("input")

4、class定位

class屬性支持多個類名,中間以空格分開,在使用class定位時使用的是class_name。

<input type="submit" id="su" value="百度一下" class="bg s_btn">

在搜索框搜索hello world

Search=driver_in.find_element_by_class_name("s_btn").click()

5、link定位

定位文本鏈接,是需要完全匹配,精確定位。例如百度輸入框上的幾個文字鏈接。

<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新聞</a>
<a href="https://www.hao123.com" name="tj_trhao123" class="mnav">hao123</a>
……
<a href="http://www.baidu.com/more/" name="tj_briicon" class="bri" style="display: block;">更多產品</a>

點擊link進行頁面跳轉。

driver_in.find_element_by_link_text("新聞").click()

6、partial link定位

partial link是對link的補充,是部分文字匹配,模糊定位。當鏈接文本過長時選擇partial link對部分文字進行定位,當然需要保證這部分文字是可以唯一標識這個鏈接。

driver_in.find_element_by_partial_link_text("更多").click()
  • 注意當頁面跳轉之後,使用上述元素定位會報錯,例如在百度搜索頁面,搜索之後沒有切換窗口,那麼再次使用定位元素會報錯

還有兩種元素定位方法:XPath定位和CSS定位。
分篇記錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章