selenium介绍
Selenium自动化浏览器。就是这样!你用那种方式做什么完全取决于你自己。首先,它是为了测试目的自动化web应用程序,但肯定不限于此。无聊的基于web的管理任务也可以实现自动化。
Selenium获得了一些最大的浏览器厂商的支持,这些厂商已经采取(或正在采取)步骤使Selenium成为浏览器的原生部分。它也是无数其他浏览器自动化工具、api和框架的核心技术。
资料链接
selenium官方网站
ChromeDriver下载地址
Firefox Driver下载地址
Maven工程
pom.xml配置
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>3.13.0</version>
</dependency>
Java代码
public static void main( String[] args )
{
WebDriver driver = null;
System.setProperty("webdriver.chrome.driver", "G:/crawler/chromedriver/2.40/chromedriver.exe");
driver = new ChromeDriver();
//打开登录页面
driver.get("https://www.ccc.org.cn/jis/front/login.do");
//手动登录
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Chromedriver与chrome浏览器版本匹配情况
最新进展关注chromedriver官方版本列表
chromedriver版本 | 支持的Chrome版本 |
---|---|
v2.41 | v67-69 |
v2.40 | v66-68 |
v2.39 | v66-68 |
v2.38 | v65-67 |
v2.37 | v64-66 |
v2.36 | v63-65 |
v2.35 | v62-64 |
v2.34 | v61-63 |
v2.33 | v60-62 |
v2.32 | v59-61 |
v2.31 | v58-60 |
v2.30 | v58-60 |
v2.29 | v56-58 |
v2.28 | v55-57 |
v2.27 | v54-56 |
v2.26 | v53-55 |
v2.25 | v53-55 |
v2.24 | v52-54 |
v2.23 | v51-53 |
v2.22 | v49-52 |
v2.21 | v46-50 |
v2.20 | v43-48 |
v2.19 | v43-47 |
v2.18 | v43-46 |
v2.17 | v42-43 |
v2.13 | v42-45 |
v2.15 | v40-43 |
v2.14 | v39-42 |
v2.13 | v38-41 |
v2.12 | v36-40 |
v2.11 | v36-40 |
v2.10 | v33-36 |
v2.9 | v31-34 |
v2.8 | v30-33 |
v2.7 | v30-33 |
v2.6 | v29-32 |
v2.5 | v29-32 |
v2.4 | v29-32 |
Maven的坑(Maven偷梁换柱你的JAR包)
我尝试了很多selenium的版本3.4.0\3.6.0\3.7.1\3.13.0等,对应的chrome浏览器版本也都重新安装,单都是报了一样的错误(下方所示)。在网上查询,都没有得到想要的结果,从新建了一个Maven工程,只引进了selenium依赖,比较纯洁,没有干扰。结果就可以启动chrome浏览器了。反过头去看原来的maven工程,发现selenium依赖的guava Jar包,被其他依赖给神不知鬼不觉的替换了,使用了不同的版本。一直不知道Maven还有这种偷梁换柱的功能,所以千万不要Maven偷换你的JAR包。
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:125)
at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:35)
at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:156)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:346)
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:91)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
at com.cn.tools.crawler.cnccbm.cnccbm_ChromeDriver.oneCrawler(cnccbm_ChromeDriver.java:96)
at com.cn.tools.crawler.cnccbm.cnccbm_ChromeDriver.main(cnccbm_ChromeDriver.java:272)
网友评论