java - 有人可以解释为什么 Selenium 简单程序不起作用吗? (在 Mac 上使用 Maven-Java)

标签 java maven selenium intellij-idea selenium-chromedriver

我是 Selenium 新手,我无法运行最简单的程序:

public static void main(String[] args) {
    WebDriver driver = new ChromeDriver();

    driver.get("https://google.com");

    HelloWorld.LOGGER.info(driver.getTitle());
}

我收到的错误:

Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html
    at com.google.common.base.Preconditions.checkState(Preconditions.java:754)
    at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:134)
    at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:35)
    at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:159)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:355)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:94)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
    at com.genesys.testing.topicsDefinitionUI.HelloWorld.main(HelloWorld.java:20)

阅读上面的异常后,我在这个网站上看到了一个对我不起作用的解决方案:

public static void main(String[] args) {
    System.setProperty("WebDriver.Chrome.driver","/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome");

    WebDriver driver = new ChromeDriver();

    driver.get("https://google.com");

    HelloWorld.LOGGER.info(driver.getTitle());
}

我收到的错误:

Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html
    at com.google.common.base.Preconditions.checkState(Preconditions.java:754)
    at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:134)
    at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:35)
    at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:159)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:355)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:94)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
    at com.genesys.testing.topicsDefinitionUI.HelloWorld.main(HelloWorld.java:20)

我正在使用 MacOS - Catalina,我的 IDE 是 Intellij,这是一个 Maven 项目。

尝试将 System.setProperty() 函数的第二个参数切换为路径的多种变体,但没有成功。

我错过了什么?

最佳答案

要在 Chrome 浏览器上运行代码,您需要设置 chromedriver 的路径。 ypu haavee 在代码中指定了错误的 chrome 驱动程序路径

System.setProperty("webdriver.chrome.driver","chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://google.com");
System.out.println(driver.getTitle());

检查您的浏览器版本并从以下链接下载 chromedriver:

https://chromedriver.chromium.org/downloads

关于java - 有人可以解释为什么 Selenium 简单程序不起作用吗? (在 Mac 上使用 Maven-Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60811678/

相关文章:

ruby-on-rails - 使用 webkit 测试失败,使用 selenium 通过

Python Unittest - 如果assertEqual 那么?

java - 如何使用 Allure 组织 junit 测试套件

java - 检查 HashMap 和遍历 HashMap 中的键之间的区别

maven - 在 Maven Cucumber 报告中构建失败时不会生成报告

java - 解析 XML 的字符串表示形式

java - Spring Boot 未加载 log4j2.xml

java - 多个 Maven 项目,单个 JaCoCo 站点?

java - 扫描仪需要/正在请求输入两次

java - android Activity 切换不起作用