软件测试(五)--自动化测试Selenium(一)
测试用例万能公式:功能,界面,易用性,兼容性,性能,安全,安装卸载
1.什么是自动化测试
将人工要做的测试工作进行转换,让代码去执行测试工作。提高测试效率,提高测试产品质量。
分类:
单元自动化测试
接口自动化测试
UI自动化测试
2.什么是selenium
做UI自动化测试的工具
3.selenium优势
1)免费,可以查看源码
2)支持各大浏览器(edge,chrome,opera..)
3)跨平台(linux,windows,mac)
4)有丰富的API
4.selenium工作原理
三个角色:
1)自动化脚本代码(在idea里面写的代码)
2)驱动:对页面进行操作
3)浏览器
5.selenium环境搭建
Python+selenium
1)下载python
2)安装setuptools
打开cmd,输入命令:pip install setuptools
3)安装selenuim
打开cmd,输入命令:pip install selenium
Java+selenium
1)下载chrome浏览器
2)下载chrome浏览器驱动
https://developer.chrome.com/docs/chromedriver/downloads?hl=zh-cn
3)配置系统环境变量PATH
①打开下载好的文件夹,将chromedriver.exe复制到chrome浏览器所在的文件夹。

②将chromedriver.exe复制后的路径(即chrome的路径)复制下来,添加到系统环境变量-Path中。

③验证环境是否搭建成功
创建java项目

在pom文件中插入以下代码
<dependencies><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency></dependencies>
运行如下代码
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.WebDriver;public class Main {public static void main(String[] args) {WebDriver webDriver = new ChromeDriver();webDriver.get("https://www.baidu.com");}
}

运行结果如下即为环境搭建完成。

如果运行结果为Process finished with exit code 1,且百度界面闪了一下就退出,可能是因为chromeDriver与chrome版本不匹配。
6.selenium API
1)定位元素
①CSS选择器定位元素

类选择器:“.” +class的值

id选择器:“#” + id的值

父类选择器 子类选择器 (#s_kw-wrap #kw)父类子类之间有空格
标签选择器:标签名



②xpath定位元素
绝对路径:通过/开头

相对路径:通过//开头
a.相对路径+索引

b.相对路径+属性的值

c.相对路径+通配符
//*[*@class="s_ipt"]

d.相对路径+文本匹配
//a[text0="新闻"]

③标签定位元素
选中--右键--copy--copy xpath




css选择器和xpath对比:css定位元素效率更高
2)操作测试对象
①click点击对象
②send_keys在对象上模拟按键输入
③clear清除对象输入的文本内容
④submit提交
⑤text用于获取元素的文本信息
send_keys,click,text获取文本

clear,submit

submit和click区别:
submit操作的元素通常需要放到form标签中,否则会报错。click没有这个限制。
推荐使用click。



3)添加等待
强制等待:sleep
智能等待:
①显式等待

②隐式等待(推荐)

隐式等待并非一个固定时间,元素可以定位,则继续执行;定位不到,以轮询的方式不断的判断元素是否被定位到。超过时长,会报错。

