一.Selenium是什么
Selenium是用来做web自动化测试的框架
二.特点
支持各种浏览器,支持各种平台,支持各种语言(Python,Java,C#,JS,Ruby)等等
三.原理
主要过程就是通过idea编写自动化的脚本代码,通过下载好的webdriver浏览器驱动解析并发送给浏览器执行,然后把执行结果返回给webdriver。
四.Selenium+Java环境搭建
1.下载chrome
推荐使用chrome浏览器,下载chrome浏览器,然后在设置中检查chrome浏览器的版本号:
2.下载chrome浏览器驱动
ChromeDriver - WebDriver for Chrome - Downloads (chromium.org)
进入后下载上面对应版本的驱动即可:
3.配置环境变量
解压下载好的驱动压缩包,将下载好的chromedriver.exe放到Java系统环境变量下:
4.验证环境是否搭建成功
创建一个Maven项目,在pom.xml中引入依赖:
引入成功后在java目录下创建一个文件并且编写代码:
点击运行后可以发现百度窗口被自动打开了,证明环境搭建成功。
五.Selenium的常用API
1.CSS定位
这个方法可以查找指定的元素,例如:
在findElement内部用CSS选择器选择了“.s_ipt”类,这个类代表百度的搜索框:
选择成功后使用sendKeys方法在搜索框中输入,运行程序:
可以看到程序运行后自动在输入框中输入了。
2.xpath定位
绝对路径:以/html开头,例如:/html/head/title。这种方式比较繁琐,并不常用。
相对路径:
1)相对路径+索引:
例如//form/span[1]/input
//表示相对路径,在form标签下第一个span元素下的input元素。
2)相对路径+属性值:
例如//input[@class="s_ipt"]
//表示相对路径,在input标签下的名称为s_ipt的元素。
3)相对路径+通配符:
例如//*[@*="su"]
表示在所有标签下,属性值等于su的元素。
4)相对路径+文本匹配:
例如//a[text()="新闻"]
表示在a标签下,文本内容等于“新闻”的元素。
总的来说,CSS选择器是比xpath选择器效率高的,更支持用CSS选择器。
3.clear
clear代表清空操作,上述代码中实现了选择百度输入框并输入内容后点击提交,然后清空输入框的操作。
4 .submit
submit代表提交操作,和click不同的是,submit必须在form标签下才可以生效,非form标签下是会报错的,例如在百度首页中用submit做点击新闻的操作:
而用click就可以正常操作。
5.浏览器操作
1)浏览器前进,回退:
这个操作可以实现浏览器的前进,回退,显示为浏览器自动打开百度页面后输入“软件测试”四个字,搜索,等待3秒后回退,刷新,再搜索
2)浏览器滚动条
通过将webdriver的强制转换,实现滚动条滚动的操作。
3)浏览器最大化,全屏,设置大小
4)浏览器关闭
浏览器的关闭操作有两个,一个是close,一个是quit。首先演示quit操作:
运行代码后可以看到浏览器在点击“图片”后的3秒就自动全部退出所有页面了。而对于close操作:
运行代码后可以看到最后退出的是最开始的起始页面,新打开的页面并没有退出。
所以quit和close的区别还是比较明显的:
quit关闭的是整个浏览器,close关闭的只是get到的界面。
quit会清空缓存,close不会清空缓存。
5)切换窗口
想对新打开的窗口进行操作时,例如我想在新打开的百度图片窗口中点击“手抄报”:
那么理所当然的就会这样去写代码:
运行后发现报错。错误原因是找不到“手抄报”对应的标签,因为窗口还没有切换到百度图片,依然停留在上面的百度搜索窗口,所以需要进行切换窗口操作:
切换后就可以在新的窗口中操作了。
6)截图
想实现截图操作需要引入依赖:
引入依赖后就可以进行截图操作了:
表示把图片截取并且保存到桌面上。
6.键盘操作
通过键盘操作可以进行复制粘贴等。
7.鼠标事件
以上是Selenuim的一些基础内容,如有错误,欢迎指正。