前言
ui 自动化测试,可分为两种,一个是web端自动化测试,一个是app端自动化测试,那么我们是通过什么方式去操作界面的呢?肯定会有个中间的途径,就是通过元素定位,定位到元素后,再对这个元素进行操作,那么今天就来介绍下ui自动化测试中的其中一种 ———— web自动化测试,selenium框架中的元素定位 & xpath 这个中元素定位的详细介绍。
一、什么是元素定位?
元素定位 :是找到元素操作的行为,是对元素进行操作(点击、输入等),来控制页面操作。
二、selenium中元素定位的方式有那些?
1、元素定位的八大方式:
# driver.find_element_by_id()
# driver.find_element_by_name()
# driver.find_element_by_class_name()
# driver.find_element_by_xpath()
# driver.find_element_by_css_selector()
# driver.find_element_by_link_text() ==> 通过超链接文本进行定位
# driver.find_element_by_partial_link_text() ==> 通过超链接部分文本进行定位
# driver.find_element_by_tag_name() ==> 通过标签名进行定位
2、find_element & find_elements 的区别:
1)、find_element 得到的是一个webelement的对象,只会返回查找到的第一个对象;
find_elements 得到的是一个列表(返回),返回查找到的所有,并保存到一列表中
2)、如找不到,
print(driver.find_element_by_id('kw')) find_element 会报错,NoSuch ElementException
print(driver.find_elements_by_id('kw')) find_elements 不会报错,但是会返回空列表
3)、当我们想验证通过某个表达式,能否找到元素,判断页面是否存在元素
# find_element 不存在会报错 ,可通过try...except...进行捕获
try:
driver.find_element_by_id('kw')
print('元素存在')
except:
print('元素不存在')
# find_elements 得到的是一列表,条件不满足是,可通过条件判断,返回True、False
if driver.find_elements_by_id('kw')
print('元素存在')
else:
print('元素不存在')
在自动化测试中,一般使用find_element,不加s会更常见
3、调取元素定位的界面:
1)打开需操作的浏览器页面,如:https://www.baidu.com
2)点击键盘 F12 或 通过右击,选中检查;
3)选中Elements,点击左上箭头处(此时变蓝),然后可以点击我们需定位的元素;