selenium运行报错

    科技2022-08-30  115

    目录

    目录

    第一个错误,selenium运行报Exception in thread main java.lang.IllegalStateException的错误

    第二个错误,Exception in thread "main" java.lang.NullPointerException

    第三个错误,用java+selenium启动chrome浏览器时报错Exception in thread "main" org.openqa.selenium.NoSuchSession

    第四个错误,Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap


    第一个错误,selenium运行报Exception in thread main java.lang.IllegalStateException的错误

    Exception in thread "main" java.lang.IllegalStateException: The driver executable is a directory: C:\Users\admin\AppData\Local\Google\Chrome\Application

    主要是因为设置chrome浏览器驱动所在的位置,chromedriver的路径不全

     

     

    String urldriver ="C:\\Users\\admin\\AppData\\Local\\Google\\Chrome\\Application";

     

    请看上面的代码,这里C:\\Users\\admin\\AppData\\Local\\Google\\Chrome\\Application,路径是不全的,所以运行下面的代码是就会报错了

     

    System.setProperty("webdriver.chrome.driver",urldriver);

     

    正解,

    String urldriver ="C:\\Users\\admin\\AppData\\Local\\Google\\Chrome\\Application\\chromedriver.exe";

    补全路径,加上\\chromedriver.exe

     

    第二个错误,Exception in thread "main" java.lang.NullPointerException

    这类错误,通常都是由于对象没有初始化就使用造成的

    空指针异常,对象必须要初始化之后才可以使用

     

    第三个错误,用java+selenium启动chrome浏览器时报错Exception in thread "main" org.openqa.selenium.NoSuchSession

    且看下图所示的代码,代码没有问题。但是运行的时候就会报错,Exception in thread "main" org.openqa.selenium.NoSuchSession。主要原因就是ChromeDriver的版本和Chrome浏览器版本不一致。有可能是Chrome浏览器悄悄升级了。导致版本不一致

     

     

    第四个错误,Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap

    今天通过maven部署了一个selenium的自动化环境,然后run一下,就报了一个很奇怪的错误:Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap

    一开始,我以为这个错误是因为通过System.setProperty设置driver路径时,填写的路径引起的问题,如下图所示,红圈部分,路径不全,exe文件的名称也要包含到路径中

    然后我就把exe文件的名称也加到路径中,路径加上之后还是报这个 "java.lang.NoClassDefFoundError"的错误,所以应该与这个驱动的路径无关。

    然后我又想到了是不是没有import这个webdriver?于是试一下把webdriver,  import进去看看

    然后下面,我就把webdriver给import进去,但是还是报这个"java.lang.NoClassDefFoundError"的错误。所以这个错误应该是和 import webdriver的語句無關

    接着我怀疑起Maven项目的文件是否出了问题。但是想想也不太可能。于是我仔细的看看了报错信息,

    根据这条报错信息at org.openqa.selenium.remote.service.DriverService$Builder。 大概可以断定,应该是driver的路径处了问题。最后我看了以下System.setProperty函数,果然是写错了字母,写成了webdrover,注意这个是错误的写法。

    嗯,虽然把webdriver关键字写对了,但是报错。。我在猜是不是jdk版本与maven仓库下载下来的selenium版本不匹配造成的,设置一下jdk版本,在JRE System Library右键,再选择Properties

    \

    然后在执行环境中选择java1.8版本

    再运行一次,结果还是报这个错误.

    我查看了一下,又猜测可能我需要更高版本的jdk才行,且看下图,从Maven仓库下载的selenium包都是3.141版本的,但是我的jdk版本是1.8

    所以,我这里就想可能jdk的版本太低了,而selenium版本太高了,所以可能需要一个更高版本的jdk,搞个3.0或者以上的版本

    Processed: 0.021, SQL: 9