Selenium FireFoxDriver 无法连接

Selenium FireFoxDriver unable to connect

我第一次尝试使用 Selenium 来驱动 Firefox。我使用几乎相同的代码来驱动 Chrome 没有问题。但是,当我尝试使用 Firefox 驱动程序时,浏览器打开、停止,然后在大约 60 秒后,我收到如下错误报告:

Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox   console output:
4474-a285-3208198ce6fd}","syncGUID":"dcskEFBTLyBH","location":"app-global","version":"48.0.1","type":"theme","internalName":"classic/1.0","updateURL":null,"updateKey":null,"optionsURL":null,"optionsType":null,"aboutURL":null,"icons":{"32":"icon.png","48":"icon.png"},"iconURL":null,"icon64URL":null,"defaultLocale":{"name":"Default","description":"The default theme.","creator":"Mozilla","homepageURL":null,"contributors":["Mozilla Contributors"]},"visible":true,"active":true,"userDisabled":false,"appDisabled":false,"descriptor":"C:\Program Files\Mozilla Firefox\browser\extensions\{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi","installDate":1471881400240,"updateDate":1471881400240,"applyBackgroundUpdates":1,"skinnable":true,"size":21905,"sourceURI":null,"releaseNotesURI":null,"softDisabled":false,"foreignInstall":false,"hasBinaryComponents":false,"strictCompatibility":true,"locales":[],"targetApplications":[{"id":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","minVersion":"48.0.1","maxVersion":"48.0.1"}],"targetPlatforms":[],"seen":true}
1472056603181   addons.xpi  DEBUG   getModTime: Recursive scan of {972ce4c6-7e08-4474-a285-3208198ce6fd}

我查看了其他指南,他们只建议我更新我的 .jar 文件。我正在使用 selenium-java-3.0.0-beta2 和 Firefox 48.0.1 进行测试,因此我的文件是最新的。我想把它正确地送到 运行。

更新:代码仍然无效,我已经设置系统 属性 以正确设置 geckodriver。但是,我仍然无法让驱动程序正常运行。它甚至不会再启动浏览器。

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class SimpleFireFoxDriver {


public static void main(String[] args) {

    System.setProperty("webdriver.gecko.driver","C:\Selenium\geckodriver.exe");

    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setCapability("marionette", true);

   WebDriver driver = new FirefoxDriver();

   driver.get("http://www.youtube.com");

   System.out.println("Made it to the promised land");

   driver.quit();

    }

}

编辑:FireFox 本身的路径也位于此处: "C:\Program Files\Mozilla Firefox\firefox.exe"

发生这种情况是因为您设置了错误的系统属性。您需要设置系统 属性 如下:

System.setProperty("webdriver.gecko.driver","C:\Selenium\geckodriver.exe");

Selenium firefox 驱动程序希望在启动 marionette 驱动程序和启动 firefox 之前设置此系统 属性。如果您不设置任何系统 属性 并尝试实例化 Firefox 驱动程序,那么您将收到以下错误: "The path to the driver executable must be set by the webdriver.gecko.driver system property."

希望对您有所帮助。

更改系统 属性 对我有用。将其更改为以下内容:

System.setProperty("webdriver.firefox.marionette","src\test\java\lib\geckodriver.exe");
driver= new FirefoxDriver();

希望对您有所帮助。

将“webdriver.gecko.driver”更改为“webdriver.firefox.marionette”救了我的命! 示例:

正确

System.setProperty("webdriver.firefox.marionette","C://selenium/gecko/geckodriver.exe");

不正确

System.setProperty("webdriver.gecko.driver","C://selenium/gecko/geckodriver.exe");

将“webdriver.gecko.driver”更改为“webdriver.firefox.marionette”挽救了我的生命还将 Firefox 从 50 降级到 36

或者试试这个代码:

System.setProperty("webdriver.firefox.marionette", "D://Driver//geckodriver.exe");
WebDriver driver = new FirefoxDriver();

下载最新的 Gecko 驱动程序 V0.17.0,在不更改 setProperty 或降级 Firefox 浏览器的情况下解决了我的错误。

不太确定,这是否对您有帮助。