“java.lang.module.InvalidModuleDescriptorException:提供程序类 org.apache.bsf.BSFManager 不在模块中"ChromeDriver Selenium 出错

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

I am using eclipse 09-2019 with jdk13 and selenium 3.0.1 .jar file.

我的代码是:

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

InvalidModuleDescriptorException is thrown when reading a module descriptor and the module descriptor is found to be malformed or otherwise cannot be interpreted as a module descriptor.

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

InvalidModuleDescriptorException can be raised in either of the following scenarios:

  1. Java 项目的问题.
  2. Java 项目中的 Java 包存在问题.
  3. Java 包中的 Java 类存在问题.

但是,根据 Does Selenium v​​3.141 支持 Java 13? 似乎是 Selenium 仍然不支持 java-13.

However, as per the discussion in Does Selenium v3.141 support Java 13? it seems the latest version of Selenium still doesn't supports java-13.

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

The strategic solution will be to install the latest version of JDK 8u222 and execute the @Tests

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

Additionally, you also need to replace uppercap W with the lowercap w in the System.setProperty() line. So, effectively, you need to replace:

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

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

<小时>

其他注意事项

此外,请确保:

  • Selenium 已升级到当前级别版本 3.141.59.
  • ChromeDriver 已更新为当前 ChromeDriver v79.0.3945.36 级别.
  • Chrome 已更新至当前 Chrome 版本 79.0 级别.(根据 ChromeDriver v79.0 发行说明)
  • Selenium is upgraded to current levels Version 3.141.59.
  • ChromeDriver is updated to current ChromeDriver v79.0.3945.36 level.
  • Chrome is updated to current Chrome Version 79.0 level. (as per ChromeDriver v79.0 release notes)

相关文章