Java使用selenium的一些问题
1、引入selenium依赖
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
2、下载与本地Google对应的chromedriver驱动
网址:http://chromedriver.storage.googleapis.com/index.html
如找不到与自己浏览器匹配的版本,参考官网:https://chromedriver.chromium.org/downloads
3、项目内使用
//path为你的驱动路径
System.setProperty("webdriver.chrome.driver",path);
//为Chrome配置启动参数
ChromeOptions chromeOptions = new ChromeOptions();
//设置无头模式
chromeOptions.setHeadless(true);
//无沙箱模式
chromeOptions.addArguments("--no-sandbox");
//禁用GPU加速
chromeOptions.addArguments("--disable-gpu");
//最大分辨率,一定要加,特别是在linux系统中,不加的话不显示出来的地方不会被加载,无法被点击
chromeOptions.addArguments("--window-size=1960,1080");
//禁止加载图片,加快访问速度
chromeOptions.addArguments("--blink-settings=imagesEnabled=false");
//在启动浏览器时加入配置
WebDriver webDriver = new ChromeDriver(chromeOptions);
当selenium在本地运行时没有问题,但是放到远程服务器上出现了无法定位到click元素的问题,这个问题的原因是浏览器视窗太小了造成的,使用selenium测试时,如果视窗不够大,相应的selenium模拟的点击自然点击不到被窗口遮挡的部分,自然就会报错,所以使用最大分辨率,确保被点击成功。
另一个问题是无法找到元素,如果本地没问题的话,可以延迟等待时间。
总结:Java的selenium没有python的好用(个人感觉),有兴趣的还是去学一下python的selenium