2016-09-23 2 views
0

Первый сценарий работает, но второй один терпит неудачуОшибка при запуске behat

Файл особенность:

And I click the "#redeem" element 
And I wait for the ajax response 
And I should see "OPERATOR CONTACT DETAILS AND INFORMATION WILL BE PROVIDED VIA EMAIL ON CONFIRMATION" 
And I click the "#place_order" element 
And I wait for the ajax response 
Then I should see "Woohoo and thanks for booking!" 

@javascript 
Scenario: For checking mail in inbox of Gmail 
Given I am on "https://gmail.com" 
And I wait 12 seconds 
And I fill in "Email" with "[email protected]" 

minkcontext:

/** 
    * Fills in form field with specified id|name|label|value. 
    * 
    * @When /^(?:|I)fill in "(?P<field>(?:[^"]|\\")*)" with "(?P<value>(?:[^"]|\\")*)"$/ 
    * @When /^(?:|I)fill in "(?P<field>(?:[^"]|\\")*)" with:$/ 
    * @When /^(?:|I)fill in "(?P<value>(?:[^"]|\\")*)" for "(?P<field>(?:[^"]|\\")*)"$/ 
    */ 
    public function fillField($field, $value) 
    { 
     $field = $this->fixStepArgument($field); 
     $value = $this->fixStepArgument($value); 
     $this->getSession()->getPage()->fillField($field, $value); 
    } 

сообщение об ошибке:

And I should see "OPERATOR CONTACT DETAILS AND INFORMATION WILL BE PROVIDED VIA EMAIL ON CONFIRMATION" # FeatureContext::assertPageContainsText() 
    And I click the "#place_order" element                 # FeatureContext::iClickTheElement() 
    And I wait for the ajax response                  # FeatureContext::iWaitForTheAjaxResponse() 
    Then I should see "Woohoo and thanks for booking!"              # FeatureContext::assertPageContainsText() 

    @javascript 
    Scenario: For checking mail in inbox of Gmail         # features/Redeem_a_Experience_voucher.feature:45 
    Given I am on "https://gmail.com"           # FeatureContext::visit() 
    And I wait 12 seconds              # FeatureContext::iWaitSeconds() 
    And I fill in "Email" with "[email protected]"      # FeatureContext::fillField() 
     Form field with id|name|label|value|placeholder "Email" not found. (Behat\Mink\Exception\ElementNotFoundException) 
    And I click the "#next" element 

И если запустить оба сценария d если это удобно, то это работает porperly. Почему он не работает, если оба сценария объединены вместе.

ответ

1

Вы должны использовать тег @insulated на уровне функций.
Этот тег будет проверять, что вы будете иметь чистую сессию каждый раз.

Добавить этот тег в первую строку вашего файла функции перед Feature.

Вы можете использовать @javascript таким же образом, на уровне функции и она будет применяться для каждого сценария

+0

Спасибо это работает. –

+0

Добро пожаловать :) – lauda

+0

Есть ли возможность скопировать определенный текст из gmail и использовать его в следующем сценарии? –

Смежные вопросы