在Selenium实现Web自动化测试过程中,主要就是定位元素并执行一些操作,而元素的定位则是其中比较最复杂的一部分。
Selenium Webdriver主要有两种定位元素的方法:
- find_element:定位一个元素
- find_elements:定位多个元素
而在这两种定位方法下,又有8种元素定位方式:
- ID:通过id属性定位元素
- NAME:通过name属性定位元素
- CLASS_NAME:通过class属性定位元素
- TAG_NAME:通过标签名称定位元素
- CSS_SELECTOR:通过CSS选择器定位元素
- LINK_TEXT:通过链接的全部文本内容定位元素
- PARTIAL_LINK_TEXT:通过链接的部分文本内容定位元素
- XPATH:通过路径定位元素
我们以如下HTML元素为例,介绍一下这8种定位元素的方式。
<input type="text" class="s" name="wd" id="userName">
<a href ="https://www.baidu.com">百度一下</a>
简单说明一下,一个HTML元素通常由以下几部分构成:
- 标签名称,如:input、a。
- 元素内容,如:百度一下。元素可以有空内容,如:<br>。
- 元素可以拥有多个属性,如:id、name、class、href等。
1、ID
说明:通过元素的id属性去定位元素
driver.find_element(By.ID, 'userName')
2、NAME
说明:通过元素的name属性去定位元素
driver.find_element(By.NAME, "wd")
3、CLASS_NAME
说明:通过元素的class_name属性去定位元素
driver.find_element(By.CLASS_NAME, "s")
4、TAG_NAME
说明:通过元素标签去定位元素
driver.find_element(By.TAG_NAME, "input")
5、CSS_SELECTOR
说明:通过CSS选择器去定位元素。CSS选择器的语法非常强大,能够支持ID选择器、CLASS选择器、元素选择器、属性选择器等多种方法,如需了解,请前往学习CSS选择器。
# id选择器
driver.find_element(By.CSS_SELECTOR, "#userName")
# class选择器
driver.find_element(By.CSS_SELECTOR, ".s")
# 元素选择器
driver.find_element(By.CSS_SELECTOR, "input")
# 属性选择器
driver.find_element(By.CSS_SELECTOR, "[class='s']")
6、LINK_TEXT
说明:通过链接(a标签)的全部文本内容定位元素
driver.find_element(By.LINK_TEXT, "百度一下")
7、PARTIAL_LINK_TEXT
说明:通过链接(a标签)的部分文本内容定位元素
driver.find_element(By.PARTIAL_LINK_TEXT, "百度")
8、XPATH
说明:通过元素路径定位元素
# ID是唯一的,可直接定位
driver.find_element(By.XPATH, "//*[@id='userName']")
# 定位input标签下class为s的元素
driver.find_element(By.XPATH, "//input[@class='s']")
XPATH有很多定位方法,如需了解,请前往学习XPATH。
以上就是使用Selenium Webdriver的8种元素定位方式。
如有什么意见与建议,请在评论区留言吧!
如果你觉得文章对你有一点点帮助,烦请各位动动小手,点赞、关注、收藏!谢谢!