selenium 介绍
Selenium 是 web 应用中基于 UI 的自动化测试框架,支持多平台、多浏览器、多语言。
早期的 selenium RC 已经被现在的 webDriver 所替代,可以简单的理解为selenium1.0+webdriver 构成 现在的 Selenium2.0 。现在我们说起 selenium ,一般指的是Selenium2.0 。它由 Selenium IDE , Webdriver,Selenium Grid 组成。
分别做一下介绍:
1,Selenium IDE
Selenium IDE一个用于 Selenium 测试的完整集成开发环境,可以直接录制在浏览器的用户操作,并且能回放,编辑和调试测试脚本。调试过程中可以逐步进行或调整执行的速度,并且可以在底部浏览日志出错信息。 录制的测试脚本可以以多种语言导出,比如java,C#,Python,Ruby等,方便掌握不同语言的测试人员操作。
2,Webdriver Selenium RC
在浏览器中运行 JavaScript 应用,会存在环境沙箱问题,而WebDriver 可以跳出 JavaScript 的沙箱,针对不同的浏览器创建更健壮的,分布式的,跨平台的自动化测试脚本。基于特定语言(Java,C#,Python,Ruby,Perl,JavaScript等)绑定来驱动浏览器对 Web 元素进行操作和验证。
3.webdriver 的工作原理
启动浏览器后,selenium-webdriver 会将目标浏览器绑定到特定的端口,启动后的浏览器则作为 webdriver 的 remote server。 客户端(也就是测试脚本),借助ComandExecutor 发送 HTTP 请求给 server 端(通信协议:The WebDriver Wire Protocol,在HTTP request 的 body 中,会以 WebDriver Wire 协议规定的 JSON 格式的字符串来告诉Selenium 我们希望浏览器接下来做什么事情)。 Server 端需要依赖原生的浏览器组件,转化 Web Service 的命令为浏览器 native 的调用来完成操作。
4,selenium Grid
selenium Grid是一个服务器,提供对浏览器实例访问的服务器列表,管理各个节点的注册和状态信息。可以实现在同一时刻不同服务器上执行不同的测试脚本。
为什么选择 selenium
做 UI 自动化测试的工具很多,为什么我们要选择用 selenium
selenium 的优点:
- 免费,可以去查看源码
- Selenimu 支持各大浏览器
- 跨平台(Linux,windows,mac)
- 有丰富的 API
selenium 工作原理
可以看出 webdriver 浏览器驱动相当于一个中介,去传递自动化脚本代码和浏览器的 HTTP 请求和响应。
selenium 环境搭建
1.下载 chrome 浏览器
直接在浏览器搜索官网下载即可,注意不要下到盗版
2.查看 chrome 浏览器版本
下载驱动要按照 chrome 浏览器的版本下载,所以先查看浏览器版本
3.下载 chrome 浏览器驱动(下载对应的版本)
可以去搜索 chrome 浏览器驱动,找到官网下载,但我尝试了几次都进入不了官网,所以找了一个第三方的网站下载https://www.cnblogs.com/aiyablog/articles/17948703
因为我的 chrome 浏览器版本是 125,所以这里我下载的是 125 - win64 版本的驱动
4.将 chromedriver.exe 驱动放到 chrome 浏览器的安装目录下
将下载得到的压缩包解压后就得到了chromedriver.exe 驱动
将驱动复制到 chrome 浏览器的安装目录下
5.将安装目录的路径复制下来配置环境变量
复制 chrome 浏览器的安装路径
将安装路径配置到环境变量的 Path 中
6.验证环境是否搭建成功
. 创建 Java 项目并在 pom 文件中添加依赖(可以自己去 maven 中心仓库下载 selenium-java )
selenium-java 依赖包
将其复制到 pom 配置文件中
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency>
创建 Exercise 类,写入如下代码进行检验
public class Exercise {public static void main(String[] args) {//创建了一个浏览器驱动,驱动相当于一个服务器,提供服务,IP 地址是本地 IP 127.0.0.1,端口号在日志上可以找到WebDriver webDriver=new ChromeDriver();webDriver.get("https://www.baidu.com/");}
}
如果得到如下的输出信息,则说明环境配置成功