UI自动化测试
使用UI自动化测试就是用代码模拟人的操作(点击、输入、滑动、下拉选择)
分类
-
web网站
QTP、selenium
-
PC端软件
用的少
-
移动端
Appium
一、selenium
用于完成web网页自动化测试
selenium(化学元素:硒)
-
selenium1.0
-
selenium2.0
-
selenium3.0
2016年出现的这个版本
selenium IDE:提供了将操作转换为代码的功能,会记录人的动作,转换为selenium代码
selenium webdriver:提供了控制浏览器执行的功能
selenium Grid:提供了分布式执行测试用例的能力
注意:
谷歌、火狐、edge、ie(已经被放弃)、欧明 3.0的时候浏览器都由各自浏览器厂商开发
-
selenium4.0
提供了相对定位的功能
selenium Grid:支持K8s上部署
二、安装
1、selenium其实虽然称之为工具,但是实际是python中的一个库
pip install selenium==3.14
2、安装浏览器
谷歌、火狐、edge
3、下载浏览器驱动
根据浏览器版本下载
谷歌的驱动下载网站打不开,所以要使用淘宝备用地址
创建D:\driver将驱动放到这个路径中去
要将这个路径添加到环境变量path中,添加之后需要重启电脑才能生效
三、前端
html:页面显示的内容
css:进行样式布局的
JS:让页面元素动起来
四、元素定位
常见元素的定位方式
-
id
如果某个元素有的id属性,那么如果id属性的值唯一,则可以利用该属性的值定位
如果id的属性的值是一串无序的字母或数字,则不能使用,有可能是动态id
driver.find_element_by_id("id属性的值")
-
name
根据name的属性的值来定位,但是如果name属性的值再当前页面不唯一,则是无法定位的
driver.find_element_by_name("wd")
-
class name
class属性的值,不唯一的可能性很大
driver.find_elements_by_class_name("s_ipt")
-
tag name(通过标签名本身选择,一般无法使用)
driver.find_element_by_tag_name("标签名")
-
link text(一般不要使用)
driver.find_element_by_link_text("百度一下")
-
partial link text(一般不要使用)
driver.find_element_by_partial_link_text("百度一下")
-
xpath
/:代表的直接子节点
//:后代节点
//a[@href="//item.taobao.com/item.htm?id=9413266033&scm=1007.40986.369799.0&pvid=4e3f6254-f6b3-4f24-a12e-e18b8e447a79"]//img
driver.find_element_by_xpath('//input[@name="wd"]').send_keys("手机")
-
css selector
根据标签以及标签的属性进行定位
driver.find_element_by_css_selector('input[name="wd"]')
#如果class属性的值唯一,也可以将其写成CSS的语法 .s_ipt
from selenium import webdriver #打开一个浏览器 driver=webdriver.Edge("D:\driver\msedgedriver.exe") # driver=webdriver.Chrome() #设置浏览器最大化 driver.maximize_window() #隐式等待 driver.implicitly_wait(10) #打开网页 driver.get("https://www.taobao.com/")