我目前在屏幕上的给定断点处出现/消失的behat +响应功能有点困难。
首先要创建标签来过滤设备的功能。 喜欢 @iphone或@mobile等等。
如果您在具有多屏幕尺寸/方向的多个设备上进行测试,这将变得非常混乱。 然后我们最终得到: @ iphone5c_hor @ iphone5c_vert @ iphone5s_hor @ iphone5s_vert @samsung ..._ vert
我的第二次尝试是使用最小宽度标记标记要素,例如min-width:700并使用功能上下文和webdriver来确定我当前的浏览器是否支持我尝试执行的功能。 这一直到现在为止:
/**
* @BeforeFeature
*
* @param \Behat\Behat\Hook\Scope\BeforeFeatureScope|BeforeScenarioScope $scope
*/
public function prepareForTheScenario(BeforeScenarioScope $scope)
{
if (!$this->checkWindowWidth($scope)) {
// TODO: skip scenario here
}
}
有没有人对这些动态测试有任何经验,我是否采取了完全错误的方式,如果不是,我怎么能做到这一点呢?
答案 0 :(得分:1)
我通过创建支持我需求的Behat-Extension来解决这个问题。 (https://github.com/2bepublished/BehatResponsiveFeaturesExtension)
答案 1 :(得分:0)
我有类似的问题,不得不设置浏览器窗口大小来摆脱我的问题。我想知道是否this helps you(请检查)。
我做的是:
只需将窗口大小设置为更大的值,以便在测试时菜单不会被删除。您可以根据需要将屏幕尺寸从1024X768更改为其他内容。
#symfony/src/Site/CommonBundle/Features/Context/FeatureContext.php
/**
* @BeforeStep
*/
public function beforeStep()
{
$this->getSession()->resizeWindow(1024, 768, 'current');
}