Selenium在Windows7上的系统搭建

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)

猜你喜欢

转载自blog.csdn.net/u013621424/article/details/81479519