自动化测试(一)定位元素方法

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定位。
分篇记录。

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