如何使用Mink在behat.yml中正确设置desiredCapabilities

时间:2017-05-09 09:19:07

标签: php symfony selenium behat mink

我们正在使用Behat和Mink。到目前为止,我们只是在代码中设置DesiredCapabilities,但现在我们想要更改它以从behat.yml获取它们并使用不同的配置文件,因此我们有一个firefox配置文件,一个用于chrome ...等等

现在这是我的behat.yml:

chrome:
 extensions:
  Behat\MinkExtension:
   sessions:
    default:
      selenium2:
        wd_host: "http://localhost:4444/wd/hub"
        capabilities:{"browserName":"chrome","version":"51","platform":"ANY","browserVersion":"51","browser":"chrome","name":"Behat Test","deviceOrientation":"portrait","deviceType":"tablet", "selenium-version":"2.31.0"}

当我尝试使用配置文件chrome开始测试时,我收到此错误:

 [Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]Unrecognized option "selenium-version" under testwork.mink.sessions.default.selenium2.capabilities"                                                      

如果我删除了硒版本'部分它只是跳转到使用Selenium2Driver.php中定义的默认功能

知道为什么会这样吗?毕竟,Selenium2的默认功能也使用selenium-version ......

1 个答案:

答案 0 :(得分:2)

是的,您可以选择在behat.yml中设置自定义功能。 capabilities数组中有一个键,因此称为extra_capabilities。设置在那里的所有功能将与已知功能合并。它是在getCapabilitiesNode方法的MinkExtension/ServiceContainer/Driver/Selenium2Factory.php内完成的。您还可以找到Behat / Mink支持的所有功能

因此,请尝试以下一种方式使用它:

capabilities:{"browserName":"chrome","version":"51","platform":"ANY","browserVersion":"51","browser":"chrome","name":"Behat Test","deviceOrientation":"portrait","deviceType":"tablet", "extra_capabilities": {"selenium-version":"2.31.0"}}

额外的参数也将传递给selenium服务器