Php 如何使用Mink在behat.yml中正确设置所需功能

Php 如何使用Mink在behat.yml中正确设置所需功能,php,symfony,selenium,behat,mink,Php,Symfony,Selenium,Behat,Mink,我们正在用Behat和水貂。到目前为止,我们只是在代码中设置DesiredCapabilities,但现在我们想改变这一点,从behat.yml获得它们,并使用不同的配置文件,因此我们有一个firefox配置文件,一个chrome配置文件。。。等等 这是我目前的行为: chrome: extensions: Behat\MinkExtension: sessions: default: selenium2: wd_host: "http://loc

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

这是我目前的行为:

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"}
当我尝试使用profile chrome启动测试时,出现以下错误:

 [Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]Unrecognized option "selenium-version" under testwork.mink.sessions.default.selenium2.capabilities"                                                      
如果我删除“Selenium2Driver”部分,它就会使用Selenium2Driver.php中定义的默认功能


知道为什么会这样吗?毕竟,Selenium2的默认功能也使用selenium版本…

是的,您可以选择在
behat.yml
中设置自定义功能。在
能力
数组中有一个键,即所谓的
额外能力
。设置在那里的所有功能都将与已知功能合并。它在
getCapabilitiesNode
方法中完成。您还可以在那里找到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服务器

检查是否有帮助。有许多behat.yml和实际的测试示例。示例:@I.Sch如果这个答案对你有用,那么你可以投票表决。