Selenium WebDriver(以下简称SW)提供了一套用于Web应用程序的自动化测试工具。SW按其应用场景不同可以分为(1)基于HtmlUnit的无界面实现,并非驱动真实浏览器进行测试;(2)模拟真实输入,对多浏览器的支持和测试,包括FirefoxDriver、InternetExplorerDriver、OperaDriver、ChromeDriver等;(3)对移动应用的测试,包括AndroidDriver和iPhoneDriver。
FireFox 、chrome 这些浏览器早已开始支持无头模式,所谓的无头模式就是无界面运行模式,正好适合在 linux 服务器这种没有 GUI 环境的情况下使用。
本文所要写的是如何配置CentOS 7 环境下运行基于Java-Selenium的无界面Chrome的相关设置。
安装 Google Chrome
安装最新版本Google-Chrome
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
测试安装
google-chrome-stable --no-sandbox --headless --disable-gpu --screenshot https://www.baidu.com/
返回如下说明成功:
[0228/200547.933592:INFO:headless_shell.cc(619)] Written to file screenshot.png.
完成后执行下面的命令查看版本
[root@VM_0_6_centos ~]# google-chrome -version
Google Chrome 80.0.3987.122
可以看出当前版本为 80 版本
安装 chromedriver
下载链接:https://npm.taobao.org/mirrors/chromedriver/
下载的chromedriver需要和当前的chrome版本相对应,下载 linux 平台版本的文件 chromedriver_linux64.zip 即可。
然后将下载好的文件解压上传到服务器上,这里事例上传到 /usr/local/bin 目录下,执行一下命令,打开文件目录,给予执行权限。
cd /usr/local/bin
chmod a+x chromedriver
至此,chromedriver安装配置成功。
Java 项目
// 设置chromedriver路径
System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");
//创建一个参数对象,用来控制chrome以无界面模式打开
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
options.addArguments("--disable-gpu");
options.addArguments("--no-sandbox");
WebDriver driver = new ChromeDriver(options);
driver.get("https://baidu.com");
driver.quit();