如何修复 Behat 3 / Mink 中的浏览器 window 大小?

How do I fix the browser window size in Behat 3 / Mink?

我想 运行 我的所有 Behat/mink 测试都以移动显示分辨率进行。真正好的是 运行 在开发工具模式下使用 Chrome 进行所有测试,您可以在其中 select "iPhone 5/SE" 等等进行模拟该设备上的 运行ning。

所以,我尝试通过在 FeatureContext 中设置显示分辨率来自己实现类似的东西。

这是一个 SO question on how to resize browser windows with Behat 2. And there's sample code for setting the window resolution in Behat/Mink/Drupal

基于这些示例,我将以下代码添加到我的 FeatureContext 中:

  /**
   * @BeforeScenario
   */
  public function resizeWindow()
  {
    $this->getSession()->resizeWindow(100, 500, 'current');
  }

但是,我收到了这个错误:

Fatal error: Call to a member function window() on null (Behat\Testwork\Call\Exception\FatalThrowableError)

我也试过:

我的目标:强制所有测试在 Chrome 下以固定的 window 大小

执行

要在 @BeforeScenario 中执行此操作:

  /**
   * @BeforeScenario
   */
  public function resizeWindow()
  {
    if ($this->getSession()->getDriver() instanceof Selenium2Driver) {
      $this->getMink()->getSession()->start();
      $this->getSession()->resizeWindow(100, 500, 'current');
    }
  }

要在 @BeforeStep 中执行此操作:

  /**
   * @BeforeStep
   */
  public function resizeWindowStep()
  {
    $is_session = $this->getMink()->isSessionStarted();
    if (!$is_session) {
      $this->getMink()->getSession()->start();
    }
    $this->getSession()->resizeWindow(100, 500, 'current');
  }