第一个场景有效,但第二个场景失败
特性文件:
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 "amit.dinda.prdxn@gmail.com"
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 "amit.dinda.prdxn@gmail.com" # FeatureContext::fillField()
Form field with id|name|label|value|placeholder "Email" not found. (Behat'Mink'Exception'ElementNotFoundException)
And I click the "#next" element
如果运行两种情况不同,那么它工作正常。
应该在Feature级别使用@insulated
标记。
这个标签将确保您每次都有一个干净的会话。
将此标记添加到特性文件的第一行,Feature
键之前。
你可以用同样的方式在特性级使用@javascript,它将适用于每个场景