Selenium+ChromeDriver使用记录
一、前言
- Selenium
免费的分布式的自动化测试工具
多平台支持:windows、linux、MAC
多浏览器支持:ie、ff、safari、opera、chrome
多语言支持:C、 java、ruby、python、C#
- ChromeDriver
WebDriver是一个开源工具,可用于跨多种浏览器自动测试Web应用程序。它提供了导航到网页,用户输入,JavaScript执行等功能。ChromeDriver是一个独立的服务器,它实现 了 W3C标准的webdriver 。ChromeDriver可用于Android上的Chrome和台式机(Mac,Linux,Windows和ChromeOS)上的Chrome。
- 开发环境
- Google Chrome 浏览器
- JDK 1.8+
- 参考:
Selenium:
ChromeDriver:
Google Chrome:https://www.google.cn/chrome/
Chrome 命令行参数:https://peter.sh/experiments/chromium-command-line-switches/
Java 正则表达式:https://www.runoob.com/java/java-regular-expressions.html
Jsoup官网: https://jsoup.org/
二、正文
- 下载并安装 Google Chrome 浏览器
- 下载 ChormeDriver (对应 Google Chrome 浏览器版本) ,解压
- 添加依赖
<!-- 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>
- 通过 chrome 的命令行参数,运行 headless 模式的 chrome 浏览器
“–disable-gpu”:不使用 GPU 加速
“–headless”:启动 chrome 的 headless 模式,即不会弹出浏览器界面
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.io.IOException;
public class Bing {
public static void main(String[] args) throws IOException {
// chromedriver 解压路径
String chromeDriverFilePath = "C:/chromedriver_win32/chromedriver.exe";
// 配置环境变量
System.getProperties().setProperty("webdriver.chrome.driver"
, chromeDriverFilePath);
// 设置浏览器选项
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--disable-gpu", "--headless");
WebDriver webDriver = new ChromeDriver(chromeOptions);
webDriver.get("https://www.bing.com");
String content = webDriver.getPageSource();
webDriver.close();
// 输出内容
System.out.println(content);
}
}
三、其它
完整依赖
<!-- 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>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-remote-driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-api -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-support -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>3.141.59</version>
</dependency>