selenium的Chrome在java中打开报错的问题(selenium-java版本的问题)

问题列表:

1.  Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;

2.  

Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/internal/Require
    at org.openqa.selenium.json.NumberCoercer.<init>(NumberCoercer.java:49)
    at org.openqa.selenium.json.JsonTypeCoercer.<init>(JsonTypeCoercer.java:71)
    at org.openqa.selenium.json.JsonTypeCoercer.<init>(JsonTypeCoercer.java:53)
    at org.openqa.selenium.json.Json.<init>(Json.java:37)
    at org.openqa.selenium.remote.NewSessionPayload.create(NewSessionPayload.java:100)
    at org.openqa.selenium.remote.NewSessionPayload.create(NewSessionPayload.java:94)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:68)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157)
    at com.jt.foottest.chrometest.main(chrometest.java:10)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.internal.Require
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 16 more

Process finished with exit code 1

---------------------问题诸如此类-----------------

值得开心的是,之前一不小心没有换maven仓库的位置,导致可以正常登录浏览器了.而当我再别的项目里,配置完maven 就不行了.

排查:1.可能是和springboot框架冲突了?

  ----------不应该,回到之前没换maven仓库那里简单搭完框架后,发现可以正常运行

        2.jar包错了?

---------依照没有换maven仓库的项目重新下载jar包,依旧不对.

        3.把没有换maven仓库的jar包移过来看看?

--------

移了 
selenium-java的jar包文件夹,依旧没有用!

        4.看到网上说,下一个Selenium Server Standalone jar包?

--------依旧没有用!

        5.我还不信邪了,换个guava 包看看?

-----更新了多个版本依旧没有用!

        6.我把guava包全部移过来,总行了吧?

-----------发现:1.单独移

依旧没有用!

2.等一等,我发现还有一个包,名叫:

这个包移过来呢?有用!!!可以正常打开了.

测试代码分享: 

package com.tf.chrome;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class tst0001 {
    public static void main(String[] args) throws InterruptedException {
        System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe");
            WebDriver driver = new ChromeDriver();
            driver.get("http://www.baidu.com/");
   
    }
}

pom.xml文件的加载包:

<!--webmagic-core核心包 -->
    <dependency>
        <groupId>us.codecraft</groupId>
        <artifactId>webmagic-core</artifactId>
        <version>0.7.5</version>
    </dependency>
    <!--webmagic-extension  拓展-->
    <dependency>
        <groupId>us.codecraft</groupId>
        <artifactId>webmagic-extension</artifactId>
        <version>0.7.5</version>
    </dependency>



    <!--selenium-java -->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>4.1.2</version>
    </dependency>



    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>31.0.1-jre</version>
        <classifier></classifier>
    </dependency>

</dependencies>

 那么.parent包里面,到底有啥?到底是哪个才是关键?我也不知道了.对照上面的jar包文件夹图,大家看我下了多少个guava版本啊...然而,换版本没用啊,也不知道为啥,换了parents那个文件夹就好使了.

而parent文件夹里有多少文件?

 我也不知道哪个才是关键.不想试了,直接全部移到仓库里就能行.

-------------分割线------------

就在我以为是guava的问题时,我在框架中来回使用-----发现,又不好使了.换了guava也不行~

继续给我报了这样的错:

        java.lang.NoClassDefFoundError: org/openqa/selenium

直到遇上这篇文章:

 

辛亏英语好,发现其实就是

selenium-java

的版本太高了,然后有人跟他说你换成3.0左右版本就成,4.0以上不兼容. 结果这位老哥换了之后果然好了,就在问:兄弟,好了耶! 我想问一下,你又没有版本兼容的小册子可以给我参考下哦?!

然后 ,我去了这里,发现:

你看,3.1那个版本居然又420的下载量,明显高于其他很多很多倍.

那就简单了,换了试试:

 

 

<!-- 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>

果然,成功了!!!!!!!  

我再把它搞坏了试试... 再换回来,好使!这次是真的好使,原来是不兼容,我勒个去~~~~

所以,在这里我也想问跟那位老哥一样的问题,版本兼容的小册子,谁也能给我一个!!!

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晦涩难董先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值