如何使用saucelabs(selenium,behat3.0 mink)功能自定义屏幕分辨率

时间:2015-12-22 22:51:45

标签: selenium behat mink saucelabs

这是我的behat.yml文件:

firefox:                  
 suites:  
    firefox:  
      contexts:  
        -FeatureContext
  extensions:  
    Behat\MinkExtension:
      javascript_session: selenium2
      base_url: https://example.com
      selenium2:
        wd_host: username:pwd@ondemand.saucelabs.com/wd/hub
        browser: firefox
        capabilities: {'platform':'OS X 10.10', 'browser':'firefox', 'version':'42.0', "screen-resolution":"1280x1024"}

哪个给出错误“

[Symfony的\元器件\配置\定义\异常\ InvalidConfigurationException]
  “testwork.mink.sessions.selenium2.selenium2.capabilities”下无法识别的选项“屏幕分辨率”

我试过这个 https://groups.google.com/forum/#!topic/behat/kApbLIiAkOg,但我也得到完全相同的错误。

如果我配置SauceLabsDriver,那么我只会得到所有(https://github.com/Behat/MinkExtension/blob/master/doc/index.rst#sessions) - Selenium2Driver的特殊风味

上述文件建议修改您的behat.yml个人资料:

default:
    extensions:
        Behat\MinkExtension:
            sessions:
                my_session:
                    sauce_labs: ~

但不知道如何实现这一点。任何的想法?如何使用saucelabs更改behat.yml文件以使用所有这些自定义参数。

2 个答案:

答案 0 :(得分:3)

虽然这是针对behat 2的,但是请你试试Resizing browser window size with behat2

class FeatureContext extends MinkContext
{
    /**
     * @BeforeScenario
     */
    public function resizeWindow()
    {
        $this->getSession()->resizeWindow(1440, 900, 'current');
    }
}

答案 1 :(得分:1)

使用带有IS_CURRENT = 'N'钩子的调整大小可能不是最佳选择。 另一种方法是使用场景步骤

WHERE x.IS_CURRENT = 'Y' AND y.IS_CURRENT = 'Y'
WHERE x.IS_CURRENT = 'Y' OR y.IS_CURRENT = 'Y'
AND x.IS_CURRENT = 'Y' OR y.IS_CURRENT = 'Y'

如果需要的话可以最大化

<g id="path" onclick="selectElement(event)">