0


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

问题列表:

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

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仓库那里简单搭完框架后,发现可以正常运行

  1. 2.jar包错了?

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

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

  1. 移了
  1. selenium-javajar包文件夹,依旧没有用!
  1. 4.看到网上说,下一个Selenium Server Standalone jar包?

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

  1. 5.我还不信邪了,换个guava 包看看?
  1. -----更新了多个版本依旧没有用!
  1. 6.我把guava包全部移过来,总行了吧?

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

依旧没有用!

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

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

测试代码分享:

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

pom.xml文件的加载包:

  1. <!--webmagic-core核心包 -->
  2. <dependency>
  3. <groupId>us.codecraft</groupId>
  4. <artifactId>webmagic-core</artifactId>
  5. <version>0.7.5</version>
  6. </dependency>
  7. <!--webmagic-extension 拓展-->
  8. <dependency>
  9. <groupId>us.codecraft</groupId>
  10. <artifactId>webmagic-extension</artifactId>
  11. <version>0.7.5</version>
  12. </dependency>
  13. <!--selenium-java -->
  14. <dependency>
  15. <groupId>org.seleniumhq.selenium</groupId>
  16. <artifactId>selenium-java</artifactId>
  17. <version>4.1.2</version>
  18. </dependency>
  19. <dependency>
  20. <groupId>com.google.guava</groupId>
  21. <artifactId>guava</artifactId>
  22. <version>31.0.1-jre</version>
  23. <classifier></classifier>
  24. </dependency>
  25. </dependencies>

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

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

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

  1. -------------分割线------------

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

继续给我报了这样的错:

  1. java.lang.NoClassDefFoundError: org/openqa/selenium

直到遇上这篇文章:

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

  1. selenium-java

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

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

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

那就简单了,换了试试:

  1. <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
  2. <dependency>
  3. <groupId>org.seleniumhq.selenium</groupId>
  4. <artifactId>selenium-java</artifactId>
  5. <version>3.141.59</version>
  6. </dependency>

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

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

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


本文转载自: https://blog.csdn.net/m0_56758840/article/details/123380448
版权归原作者 大河之J天上来 所有, 如有侵权,请联系我们删除。

“selenium的Chrome在java中打开报错的问题(selenium-java版本的问题)”的评论:

还没有评论