2017-05-09 58 views
2

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

现在,这是我目前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"} 

当我尝试启动轮廓镀铬测试我得到这个错误:

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

如果我删除了“硒它只是跳转到使用在Selenium2Driver.php中定义的默认功能

任何想法为什么发生这种情况?毕竟,Selenium2的默认功能也使用硒版本...

+0

检查[这个博客](http://www.inanzzz.com/index.php/posts/behat),看看它是否有帮助。有许多behat.yml和实际测试示例。例如:http://www.inanzzz.com/index.php/post/6djs/running-behat2-tests-with-different-browsers – BentCoder

回答

1

是的,您可以选择在behat.yml中设置自定义功能。 capabilities阵列中有一个键,叫做extra_capabilities。所有在那里设置的能力将与已知能力合并。它在MinkExtension/ServiceContainer/Driver/Selenium2Factory.phpgetCapabilitiesNode方法内完成。您还可以找到有通过贝哈特/水貂

因此,尝试在接下来的方式来使用它支持的所有功能:

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"}} 

这额外的参数也将被传递给硒服务器

+0

@I。 Sch如果这个答案对你有用,那么你可以upvote它。 –