开发者社区 问答 正文

我收到“ java.lang.module.InvalidModuleDescriptorExcep

我正在使用带有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");
      }

}

展开
收起
垚tutu 2019-12-04 16:21:40 848 分享 版权
阿里云 AI 助理回答

从你提供的代码片段来看,存在几个问题需要修正以便使你的Selenium脚本能够正常运行。以下是修改后的代码及解释:

package package1;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Script1 {
    public static void main(String[] args) {
        System.out.println("Hii");
        
        // 注意webdriver的正确命名,应为"webdriver.chrome.driver"而非"Webdriver.chrome.driver"
        System.setProperty("webdriver.chrome.driver", "E:\\Selenium\\chromedriver.exe");
        
        // 由于你只导入了ChromeDriver,这里直接实例化ChromeDriver
        WebDriver driver = new ChromeDriver();
        
        try {
            driver.get("http://www.google.com");
            // 可以添加一些等待时间,确保页面加载完成,比如使用WebDriverWait
            // 这里仅示例,未实际引入相关类
            // WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
            // wait.until(ExpectedConditions.titleIs("Google"));
            
            // 打印当前页面标题验证是否成功打开
            System.out.println("Page Title: " + driver.getTitle());
            
        } finally {
            // 最后记得关闭浏览器驱动,释放资源
            driver.quit();
        }
    }
}

修改说明:

  1. 属性名错误System.setProperty中的键值对,webdriver应该小写,即webdriver.chrome.driver
  2. 导入包调整:你原始代码中同时导入了FirefoxDriver,但实际使用的是ChromeDriver,因此可以移除不必要的导入语句,保持代码整洁。
  3. 异常处理:虽然没有直接在代码中体现,但在实际开发中,建议使用try-catch-finally结构来管理资源,确保即使出现异常也能关闭浏览器驱动。
  4. 增加验证步骤:通过打印页面标题或使用显式等待等方法,确认脚本是否按预期工作。

请确保你的Chromedriver版本与Chrome浏览器版本相匹配,如果不匹配可能会导致各种问题。你可以访问ChromeDriver下载页面获取与你的Chrome浏览器版本对应的Chromedriver。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: