【问题标题】:Firefox is not launched using Geckodriver and Selenium - It works with ChromeFirefox 不是使用 Geckodriver 和 Selenium 启动的 - 它适用于 Chrome
【发布时间】:2017-09-03 09:35:51
【问题描述】:

我今天开始使用 Geckodriver,但没有成功。

相同的脚本使用 chrome 工作(chrome 启动正确),但 Firefox 浏览器没有启动,并且 TestNG 在启动浏览器之前使脚本失败。

代码就这么简单:

       case "IE":
            System.setProperty("webdriver.ie.driver", ECC.IE_DRIVER_PATH);
            localWebDriver = new InternetExplorerDriver();
            break;
       case "FIREFOX":
            System.setProperty("webdriver.gecko.driver", ECC.FIREFOX_DRIVER_PATH);
            localWebDriver = new FirefoxDriver();
            break;
        case "CHROME":
            System.setProperty("webdriver.chrome.driver", ECC.CHROME_DRIVER_PATH);
            localWebDriver = new ChromeDriver();
            break;
        }

在执行localWebDriver = new FirefoxDriver();时,不会启动浏览器,而是自动转到invoker.class下面的代码:

 catch(InvocationTargetException ite) {
   testResult.setThrowable(ite.getCause());
   setTestStatus(testResult, ITestResult.FAILURE);
 }

控制台只显示这个:

1491601901866 geckodriver INFO 监听 127.0.0.1:27826

我正在使用:

  • FF 版本 48
  • 壁虎司机 15.0
  • 硒 3.3.1

我也尝试过最新版本的FF,但没有成功。

chrome 不会发生这种情况。

你能帮帮我吗?

提前致谢!!

【问题讨论】:

  • 嗨!抛出的具体错误是什么?
  • 在深入挖掘之前,您是否尝试过DesiredCapabilities 方式? DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); WebDriver driver = new FirefoxDriver(capabilities); 还是要使用这个方法设置webdriver.gecko.driver 属性
  • 将 Firefox 升级到 52.0.1
  • 相信升级FF应该对你有帮助。正如Geckodriver Github page 中所说:“Firefox 48 及更高版本的支持最好,尽管通常 Firefox 版本越新,体验就越好……”。此外,在Selenium release for version 3.3.1 中,修复了“修复设置二进制文件导致 Firefox 无法启动的问题”。
  • 大家好,我已经尝试了这些选项以及最新的 FF 版本,但没有成功。关于错误,我没有看到任何错误,基本上TestNG像正常运行一样使脚本失败,并且在代码执行时捕获了失败异常:new FirefoxDriver();

标签: java selenium firefox selenium-webdriver geckodriver


【解决方案1】:

最新版本的 firefox 也存在问题(FF 52、geckodriver 0.15、selenium 3.3.1)。尝试使用 Firefox 50.1.0。它对我有用。最新的驱动程序通常不支持最新版本的 Firefox。

【讨论】:

  • 谢谢,如上所述,这是 maven 依赖项的问题。再次感谢
【解决方案2】:

我想感谢您的回复。我的问题是我有一个 Maven 依赖项,这导致我相信我使用的版本出现问题。依赖项是:

<!--        <dependency> -->
<!--            <groupId>org.seleniumhq.selenium</groupId> -->
<!--            <artifactId>selenium-remote-driver</artifactId> -->
<!--            <version>2.51.0</version> -->
<!--        </dependency> -->

评论这2条,问题就解决了。

【讨论】:

    【解决方案3】:

    请尝试使用最新版本的 Firefox。您需要根据您的浏览器使用 32 位或 64 位 GeckoDriver,并且您需要设置 Firefox Binary。

    请查看本文了解完整的设置详情 -

    http://www.automationtestinghub.com/selenium-3-0-launch-firefox-with-geckodriver/

    【讨论】:

    • 嗨,Anish,如上所述,这没有用。此外,我已按照您提供的链接的说明进行操作,但没有成功。我的代码: System.setProperty("webdriver.gecko.driver", ECC.FIREFOX_DRIVER_PATH); // 能力 = DesiredCapabilities.firefox(); // capabilities.setCapability("marionette", true); // FirefoxOptions 选项 = new FirefoxOptions(); FirefoxOptions 选项 = 新的 FirefoxOptions(); options.setBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); localWebDriver = new FirefoxDriver(选项);休息;
    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多