"java.lang.module.InvalidModuleDescriptorException: Provider class org.apache.bsf.BSFManager not in module" ChromeDriver Selenium 错误

"java.lang.module.InvalidModuleDescriptorException: Provider class org.apache.bsf.BSFManager not in module" error with ChromeDriver Selenium

我正在使用带有 jdk13 和 selenium 3.0.1 .jar 文件的 eclipse 09-2019。

我的代码是:

package package1;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Script1
{
      public static void main(String[] args)
      {
          System.out.println("Hii");
          System.setProperty("Webdriver.chrome.driver","E:\Selenium\chromedriver.exe");
          WebDriver driver=new ChromeDriver();
          driver.get("http://www.google.com");
      }
}

错误:

java.lang.module.InvalidModuleDescriptorException: Provider class org.apache.bsf.BSFManager not in module

InvalidModuleDescriptorException

InvalidModuleDescriptorException 在读取模块描述符时抛出并且发现模块描述符格式错误或无法解释为模块描述符。

InvalidModuleDescriptorException 可以在以下任一情况下引发:

  1. Java 项目的问题。
  2. Java 项目中 Java 包的问题。
  3. Java class 在 Java 包中的问题。

但是,根据 Does Selenium v3.141 support Java 13? it seems the latest version of still doesn't supports 中的讨论。


解决方案

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

此外,您还需要将 System.setProperty() 行中的大写字母 W 替换为小写字母 w。因此,实际上,您需要替换:

System.setProperty("Webdriver.chrome.driver","E:\Selenium\chromedriver.exe");

System.setProperty("webdriver.chrome.driver","E:\Selenium\chromedriver.exe");

额外考虑

此外,确保: