Behat + Mink扩展+ Selenium foreach问题

时间:2017-07-25 12:24:03

标签: php symfony selenium behat mink

我按照此文档http://docs.behat.org/en/v2.5/cookbook/behat_and_mink.html的说明进行操作,一切看起来都不错,但每当我尝试使用Javascript测试场景时,我都会遇到奇怪的错误

  

警告:为vendor / behat / mink-selenium2-driver / src / Selenium2Driver.php第444行中的foreach()提供的参数无效

My Behat.yml看起来像这样

default:
    gherkin:
        cache: var/cache/test/behat/behat_gherkin_cache
    testers:
        rerun_cache: var/cache/test/behat/behat_rerun_cache
    extensions:
        Behat\Symfony2Extension: ~
        Behat\WebApiExtension:
            base_url: 'http://nginx:8001'
        Behat\MinkExtension:
            base_url: 'http://localhost:8000'
            selenium2: ~
            sessions:
                default:
                    symfony2: ~
    suites:
        default:
            paths: [ '%paths.base%/features/app' ]
            contexts:
                - FeatureAppContext
                - Knp\FriendlyContexts\Context\TableContext

我的情景是

@javascript
Scenario: domain name reserve
  Given I am on "/login"
  When I fill in the following:
    | username | user_default |
    | password | test |
  Then I press "Connexion"
  Then I should be on "/"

但是,由于上述错误,第一条规则失败了。

Selenium2 jar也在运行。

我真的不知道为什么会收到此错误

以下是SeleniumDriver.php

中有问题的方法
/**
 * {@inheritdoc}
 */
public function getCookie($name)
{
    $cookies = $this->wdSession->getAllCookies();
    foreach ($cookies as $cookie) {
        if ($cookie['name'] === $name) {
            return urldecode($cookie['value']);
        }
    }
}

你有什么想法吗?

0 个答案:

没有答案