2014-05-12 2 views
1

내가하는 방식이 잘못되었거나 다른 방법이 있다고 생각되면 아래에 전체 코드를 변경할 수 있도록 알려주십시오.Modal 대화 상자로 Behat 테스트가 실패했습니다.

문제 : (나는 그것을 경고 상자를 클릭 할 필요가 있기 때문에 생각)

[WebDriver\Exception\UnexpectedAlertOpen]                                                                              
    Modal dialog present: profile data saved 

test_1

When I fill in "firstname" with "a" 
    And I fill in "lastname" with "b" 
    And I follow "Save" 
    Then I should see "profile data saved" in popup 

test_2

:이 오류를 받고 있어요
This is second test which comes after test_1 and this is fine. 

FeatureContext assertPopupMessage에서

/** 
* @When /^(?:|I)should see "([^"]*)" in popup$/ 
* 
* @param string $message The message. 
* 
* @return bool 
*/ 
public function assertPopupMessage($message) 
{ 
    return $message == $this->getSession()->getDriver()->getWebDriverSession()->getAlert_text(); 
} 
+0

보면 이미 driver.switchTo() 프레임 ("ModelFrameTitle")를 시도했습니다.; 텍스트를 가져 오기 전에 driver.switchTo(). activeElement()를 호출하십시오. 죄송합니다. PHP 구문을 알지 못합니다. – Morvader

답변

2

()는 $ 메시지를 비교하고 getAlert_text한다().

예컨대

/** 
    * @When /^(?:|I)should see "([^"]*)" in popup$/ 
    * 
    * @param string $message The message. 
    */ 
    public function assertPopupMessage($message) 
    { 
     $alertText = $this->getMainContext()->getSession()->getDriver()->getWebDriverSession()->getAlert_text(); 
     if ($alertText !== $message){ 
      throw new Exception("Modal dialog present: $alertText, when expected was $message"); 
     } 
    } 
팝업와

더 테스트, https://gist.github.com/acfreitas/4d0778e8690e5d3a1de7