【问题标题】:Gecko driver issue壁虎驱动问题
【发布时间】:2018-06-19 19:09:47
【问题描述】:

我无法使用 geckodriver 3.8.1 和硒氧和 firefox 57.0.4(32 位)版本打开浏览器

package Selenium_JavaFundamentals;

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

public class opengmail {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        WebDriver driver = new FirefoxDriver();

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

我收到以下错误:

线程“main”中的异常 java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;有关详细信息,请参阅https://github.com/mozilla/geckodriver。最新版本可从https://github.com/mozilla/geckodriver/releases下载 在 com.google.common.base.Preconditions.checkState(Preconditions.java:754) 在 org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124) 在 org.openqa.selenium.firefox.GeckoDriverService.access 100 美元(GeckoDriverService.java:41) 在 org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:141) 在 org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:339) 在 org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:158) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:120) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:98) 在 Selenium_JavaFundamentals.opengmail.main(opengmail.java:10)

请注意,我已经加载了壁虎驱动程序。

【问题讨论】:

标签: selenium-webdriver


【解决方案1】:

您需要明确告诉它 WebDriver 在哪里。 像这样:

package Selenium_JavaFundamentals;

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



    public class opengmail {

        public static void main(String[] args) {
            // TODO Auto-generated method stub
            WebDriver driver = new FirefoxDriver();
            System.setProperty("webdriver.gecko.driver", "/path/to/geckoDriver.exe");"
            driver.get("https://www.google.com");
        }    
}

【讨论】:

  • 这也行不通。你需要先System.setProperty() 下一个WebDriver driver = new FirefoxDriver();
【解决方案2】:

通过一些研究,我发现了这一点

WebDriver 使用本机浏览器方法。 Selenium 提供内置驱动程序 适用于 Firefox,但不适用于其他浏览器。所有驱动程序(Chrome 驱动程序、IE 驱动程序等)是基于每个人使用的特殊JS引擎构建的 浏览器。

所以我想

System.setProperty("webdriver.gecko.driver","/path/to/geckoDriver.exe");"

毕竟不是 Firefox 所必需的。

这里的问题似乎是您机器中的 Firefox 安装损坏。彻底清理您当前的安装并重新安装兼容的 Firefox。 (可选 - 您也可以将 Firefox.exe 路径放在环境变量中的 PATH 中。)

【讨论】:

  • 您的研究不再正确。在过去的某个时候,引入了一个单独的驱动程序,现在甚至 Firefox 也需要它。
【解决方案3】:

对于这个问题,我只是降级了我的firefox浏览器版本- 43降级浏览器后这个问题得到了解决

【讨论】:

    【解决方案4】:

    在初始化 FirefoxDriver 之前先设置 geckodriver.exe 的位置。

    对于带有 Firefox 的 selenium 3.x

    System.setProperty("webdriver.gecko.driver", "path.to.geckodriver.exe");  
    WebDriver driver = new FirefoxDriver();
    

    【讨论】:

      猜你喜欢
      • 2017-07-30
      • 1970-01-01
      • 2018-01-20
      • 2018-09-07
      • 1970-01-01
      • 2018-03-17
      • 2020-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多