java - 当尝试启动 geckodriver 时,我总是收到 Unknown option --port 错误

标签 java selenium firefox cucumber

Selenium 3.0.1 Java 1.08

我决定是时候学习 Ruby 之外的新东西了,所以我正在尝试实现 Cucumber、Selenium、Java 和 Firefox。

当我执行测试时,我收到一条消息

C:\Users\Documents\Automation\geckodriver.exe: Usage:
Unknown option --port=38521    
C:\Users\Documents\Automation\geckodriver.exe [OPTIONS]

然后在错误日志中我看到 引起原因:org.apache.http.conn.HttpHostConnectException:连接到 localhost:38521 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] 失败:连接被拒绝:connect

我做错了什么。

代码:

package step_definition;

import cucumber.api.java.en.*;
import cucumber.api.PendingException;

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

import org.openqa.selenium.remote.DesiredCapabilities;


public class myFirstStepDefinition {
@Given("^I navigate to TheTestRoom\\.com$")
public void i_navigate_to_TheTestRoom_com() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    System.out.println("Going to TheTestRoom.com");
    System.setProperty("webdriver.gecko.driver",     "C:\\Users\\Documents\\Automation\\geckodriver.exe");

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

    WebDriver driver; 
    driver = new FirefoxDriver();
    driver.get("http://google.com");
    Thread.sleep(5000);
    driver.quit();

}

@When("^I navigate to Cucumber Tutorial page$")
public void i_navigate_to_Cucumber_Tutorial_page() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    System.out.println("Clicking on the Cucumber Tutorial Page");
}

@Then("^the page title should be visible$")
public void the_page_title_should_be_visible() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    System.out.println("Checking page title");
}
}

当我执行测试时,这开始显示

Feature: To check that the tutorial course pages have loaded in         TheTestRoom.com
Going to TheTestRoom.com
Usage:
C:\Users\Documents\Automation\geckodriver.exe [OPTIONS]
Usage:
C:\Users\Documents\Automation\geckodriver.exe: Unknown option --    port=21132
C:\Users\Documents\Automation\geckodriver.exe [OPTIONS]
C:\Users\Documents\Automation\geckodriver.exe: Unknown option --    port=21132
[0x7FFFCC263290] ANOMALY: meaningless REX prefix used
[0x7FFFC99735B0] ANOMALY: meaningless REX prefix used
[0x7FFFC98C8400] ANOMALY: meaningless REX prefix used
[0x7FFFC9913E90] ANOMALY: meaningless REX prefix used
[0x7FFFCC21C2C0] ANOMALY: use of REX.w is meaningless (default operand size     is 64)
[0x7FFFCC21F6C0] ANOMALY: use of REX.w is meaningless (default operand size is 64)

几秒钟后继续执行,结果如下

 Scenario: To check that the WebDriver Cucumber tutorial page has loaded     [90m# myFirstFeature.feature:3[0m
    [31mGiven [0m[31mI navigate to TheTestRoom.com[0m                                       [90m# myFirstStepDefinition.i_navigate_to_TheTestRoom_com()[0m
  [31morg.openqa.selenium.WebDriverException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:21132 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect
  Build info: version: 'unknown', revision: '1969d75', time: '2016-10-18 09:43:45 -0700'
  System info: host: 'ScottFeger-PC', ip: '192.168.0.193', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_111'
  Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:91)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:259)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:247)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:242)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:238)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:127)
    at step_definition.myFirstStepDefinition.i_navigate_to_TheTestRoom_com(myFirstStepDefinition.java:23)
    at ?.Given I navigate to TheTestRoom.com(myFirstFeature.feature:4)
  Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:21132 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
    at org.openqa.selenium.remote.internal.ApacheHttpClient.fallBackExecute(ApacheHttpClient.java:142)
    at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:88)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:108)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:64)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:259)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:247)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:242)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:238)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:127)
    at step_definition.myFirstStepDefinition.i_navigate_to_TheTestRoom_com(myFirstStepDefinition.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at cucumber.runtime.Utils$1.call(Utils.java:40)
    at cucumber.runtime.Timeout.timeout(Timeout.java:16)
    at cucumber.runtime.Utils.invoke(Utils.java:34)
    at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)
    at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
    at cucumber.runtime.Runtime.runStep(Runtime.java:300)
    at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
    at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
    at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
    at cucumber.runtime.model.CucumberFeature.run(CucumberFeature.java:165)
    at cucumber.runtime.Runtime.run(Runtime.java:122)
    at cucumber.api.cli.Main.run(Main.java:36)
    at cucumber.api.cli.Main.main(Main.java:18)
  Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:74)
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141)
    ... 41 more
  [0m
[36mWhen [0m[36mI navigate to Cucumber Tutorial page[0m                             [90m# myFirstStepDefinition.i_navigate_to_Cucumber_Tutorial_page()[0m
[36mThen [0m[36mthe page title should be visible[0m                                     [90m# myFirstStepDefinition.the_page_title_should_be_visible()[0m

[31mFailed scenarios:[0m
[31mmyFirstFeature.feature:3 [0m# Scenario: To check that the WebDriver     Cucumber tutorial page has loaded

1 Scenarios ([31m1 failed[0m)
3 Steps ([31m1 failed[0m, [36m2 skipped[0m)
0m22.977s

谢谢

最佳答案

我终于明白我的问题了。我使用的是 gecko 驱动程序 0.09。当我下载 0.11.1 后,脚本就开始工作了。

关于java - 当尝试启动 geckodriver 时,我总是收到 Unknown option --port 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41031867/

相关文章:

c# - 使用 webdriver 从 javascript 警报获取文本元素

java - 触发在 Windows 上运行的 1.5 JVM 的堆转储

selenium - Protractor 远程测试多浏览器

java - java中如何将2个容器放入1个容器中?

excel - 单击带有 onclick 属性的 JavaScript 链接

java - 编写一个 firefox 插件并从 java 应用程序访问它

java - 在路径中找不到 firefox 二进制文件

Javascript:将命名函数分配给变量时不一致(命名函数表达式)

java - getMethod 正在缓存并导致内存泄漏

java - 将数据从 CSV 保存到 Realm