Behat + mink + Selenium2 + chrome驱动程序:不要启动 chrome 浏览器

Behat + mink + Selenium2 + chromeDriver: Do not launch chrome browser

我正在使用 ubuntu 14.4.

当我 运行 测试它在 firefox 上工作正常,它启动 FF 浏览器。

但是当我尝试对 Chrome 进行相同的测试时 运行s 但它没有启动浏览器。

composer.json

{
    "require": {
    "behat/behat": "2.4.*@stable",
    "behat/mink": "1.5.*@stable",
    "behat/mink-goutte-driver": "*",
    "behat/mink-extension": "*",
    "behat/mink-selenium2-driver": "*"
    }
}

behat.yml

default:
 paths:
  features: features
  bootstrap: %behat.paths.features%/bootstrap
 extensions:
  Behat\MinkExtension\Extension:
    base_url:  'path-to-my-site'
    default_session: selenium2
    browser_name: 'chrome'
    goutte: ~
    selenium2:
        wd_host: "http://127.0.0.1:4444/wd/hub"

启动 Selenium 服务器的命令

java -jar /path-to/selenium-server-standalone-2.47.1.jar -Dwebdriver.chrome.driver="/usr/local/share/chromedriver"

这是我上面命令的输出:

11:27:46.064 INFO - Launching a standalone Selenium Server
Setting system property webdriver.chrome.driver to /usr/local/share/chromedriver
11:27:46.101 INFO - Java: Oracle Corporation 24.72-b04
11:27:46.101 INFO - OS: Linux 3.13.0-32-generic amd64
11:27:46.113 INFO - v2.47.1, with Core v2.47.1. Built from revision 411b314
11:27:46.181 INFO - Driver provider org.openqa.selenium.ie.InternetExplorerDriver registration is skipped:
registration capabilities Capabilities [{platform=WINDOWS, ensureCleanSession=true, browserName=internet explorer, version=}] does not match the current platform LINUX
11:27:46.182 INFO - Driver provider org.openqa.selenium.edge.EdgeDriver registration is skipped:
registration capabilities Capabilities [{platform=WINDOWS, browserName=MicrosoftEdge, version=}] does not match the current platform LINUX
11:27:46.182 INFO - Driver class not found: com.opera.core.systems.OperaDriver
11:27:46.182 INFO - Driver provider com.opera.core.systems.OperaDriver is not registered
11:27:46.249 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
11:27:46.249 INFO - Selenium Server is up and running

执行测试命令:

vendor/bin/behat

行为测试的输出

Feature: Home page
    I am on a home page

  Scenario: Visit homepage                       # features/test.feature:4
    Given I go to "home.html"                    # FeatureContext::visit()
    Then I should see "We can change the world!" # FeatureContext::assertPageContainsText()
    Then I follow "Register"                     # FeatureContext::clickLink()

1 scenario (1 passed)
3 steps (3 passed)

问题出在 Test Works 但 chrome 浏览器未启动。我做错了什么?

您应该在场景之前添加 @javascript 标签,因为默认情况下 behat 使用 goutte 会话,而不是使用 selenium webdriver。更多关于 Goutte driver

@javascript
Scenario: Visit homepage

或在 behat.yml 中将默认会话设置为 selenium2

extensions:
    Behat\MinkExtension\Extension:
      default_session: selenium2

但在那之后 behat 将启动 firefox 浏览器,特别是启动 chrome - 你应该添加 browser_name: chrome 选项

extensions:
    Behat\MinkExtension\Extension:
      browser_name: chrome

你还应该为 selenium2 配置参数指定 wd_host 参数

extensions:
    Behat\MinkExtension\Extension:
      selenium2:
            wd_host: "http://127.0.0.1:4444/wd/hub"