Selenium + Java 环境搭建

1,755 阅读2分钟

1.什么是自动化测试

  自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。

2. Selenium 介绍

2.1 Selenium 是什么

  selenium 是用来做web自动化测试框架。在Java中,直接在 pom.xml 中导入依赖。

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>

  没错,就是导个包。然后使用其中的API来操作浏览器,从而实现自动化。

Selenium 的特点:支持各种浏览器,支持各种平台,支持各种语言,有丰富的API。

2.2 Selenium + Java 环境搭建

  这里以chrome浏览器为准,也就是使用 chrome 浏览器来做自动化测试。

  1. 下载 chrome 浏览器。
  2. 查看当前浏览器的版本,我的版本是117.0.5938.132

image.png

  1. 下载 chrome 浏览器驱动。

Chrome for Testing availability (googlechromelabs.github.io)

对照你的版本下载,当你使用的是 Chrome 版本 115 或更高版本,就点最上面的链接:

image.png

找到你对应的版本,我这里是117.0.5938.132

image.png

将链接复制到地址栏中就直接开始下载了。建议关闭浏览器的自动更新,因为驱动的版本要与浏览器版本对应。

  1. 解压后,把里面的chromedriver.exe放到你的 Google\Chrome\Application 目录下,我这里是C:\Program Files\Google\Chrome\Application

image.png

  1. 配置环境变量

image.png path 中:

image.png 6. 打开IDEA,创建一个Maven项目,在 pom.xml 中添加如下依赖:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>
  1. 测试是否搭建成功:
public class Main {
    public static void main(String[] args) {
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://juejin.cn");
    }
}

点击运行,如果打开了该网页说明搭建环境成功。

2.3 Selenium WebDriver 的工作原理

  我们上面导的依赖就是 Selenium WebDriver 的一部分(Java 的 Selenium API),Selenium WebDriver 还包含了其他语言的Selenium API以及组件。

  1. 当程序运行的时候,Selenium WebDriver 会调用Selenium API库中的相应方法,这些方法会根据你脚本中的信息,生成一个HTTP请求,并发送给浏览器驱动。
  2. 浏览器驱动中包含了一个 HTTP Server,用来接收这些 HTTP 请求。
  3. HTTP Server接收到请求后,会解析 HTTP 请求中的指令,并将其转换为浏览器能够理解的协议。同时,浏览器驱动会启动或连接到浏览器,并通过 WebSocket 连接发送指令给浏览器。
  4. 根据指令来具体操控对应的浏览器。
  5. 浏览器将结果返回给浏览器驱动,浏览器驱动再将结果封装成HTTP响应,返回给 Selenium WebDriver。
  6. Selenium WebDriver接收到响应后,可以根据结果进行断言或其他操作。