1

我第一次尝试使用 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 进行测试,因此我的文件是最新的。我想让它正常运行。

更新:代码仍然不起作用,我已经设置了 System 属性以正确设置 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”

4

5 回答 5

3

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

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

希望有帮助。

于 2016-11-20T16:10:00.650 回答
2

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

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

Selenium firefox 驱动程序希望在启动 marionette 驱动程序和启动 firefox 之前设置此系统属性。如果您没有设置任何系统属性并尝试实例化 Firefox 驱动程序,那么您将收到以下错误:“驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置。”

希望这可以帮助。

于 2016-08-24T17:28:35.260 回答
2

用“ webdriver.firefox.marionette ”改变“ webdriver.gecko.driver ”救了我的命!例子:

正确的

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

不正确

System.setProperty("webdriver.gecko.driver","C://selenium/gecko/geckodriver.exe");
于 2016-12-12T14:59:53.783 回答
1

下载最新的 Gecko 驱动程序 V0.17.0,这解决了我的错误,而无需更改 setProperty 或降级 Firefox 浏览器。

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

于 2017-07-05T10:38:40.470 回答
1

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

或者试试这个代码:

System.setProperty("webdriver.firefox.marionette", "D://Driver//geckodriver.exe");
WebDriver driver = new FirefoxDriver();
于 2016-12-26T06:10:01.330 回答