使用 JDK 15 和 Selenium 3.141.59 无法访问类型包错误

问题描述

package xyz;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Test {
System.setProperty("webdriver.firefox.FirefoxDriver","C:\\Users\\rutuj\\OneDrive\\Desktop\\New folder\\Drivers\\gecko.exe");
    public static void main(String[] args) {
        WebDriver driver=new FirefoxDriver();
    }
}

解决方法

要使用的 System.setProperty() keywebdriver.gecko.driver 而不是带有 value 设置为 GeckoDriver 的绝对路径。因此,您的代码行将是:

webdriver.firefox.FirefoxDriver

额外考虑

根据this discussion,由于拆分包和直到2018 年 5 月 15 日Selenium 与 Java 9 不完全兼容。

但是,根据此 comment @Jarob22 提到的,Selenium 使用 Java 10 可以正常工作。 Java 9 已经停产了,如果 10 个有效,那么添加额外的东西来尝试和支持它并没有多大意义。

但是随着 e57914a 的登陆,Simon 向我们介绍了基本的 JPMS 支持。有了这种可用性,(mhomnag/selenium-java10-reproducer@bc63889) 现在实际上可以构建,但您可能必须Remove the WebDriverWaiter and just use a sleep for now


Java 15

由于您使用的是 JDK 15selenium-server-standalone-3.141.59.jar 仍然与 Java 11 不完全兼容以及 Java 15。但是一旦 Java 11 发布并且 Buck 支持它,工具链就会重新调整以支持 Java 11


解决方案

战略性解决方案是安装最新版本的 JDK 8u271 并执行 @Tests

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...