2014-10-23 2 views
1

파이썬으로 작성된 웹 사이트를 자동화하고 많은 확인 알림이있는 각도를 사용하고 있습니다. 내가 가진 문제는 Behat이 그 통지를 인식하지 못하는 것입니다.정의되지 않음, Chrome 알림이 Selenium에서 트리거 될 때 정의되지 않음

알림이 표시되는 스크린 샷과 정의되지 않은 - 정의되지 않은 오류 메시지가 대신 Behat가 생성됩니다.

내 시나리오 :

Then I select the Delete the Media Plan Line Checkbox 
And I delete the Media Plan Line 
And I select Yes to confirm the deletion 
And I select No to confirm the deletion 

그리고 내 상황 :

/** 
* @Then /^I select the Delete the Media Plan Line Checkbox$/ 
*/ 
public function iDeleteMediaPlanLineCheckbox() 
{ 
    /** 
    * @var AddMediaPlan $addMediaPlan 
    */ 
    $addMediaPlan= $this->getPage('AddMediaPlan'); 
    $addMediaPlan->deleteMediaPlanLineCheckbox(); 
} 

/** 
* @Given /^I delete the Media Plan Line$/ 
*/ 
public function iDeleteTheMediaPlanLine() 
{ 
    /** 
    * @var AddMediaPlan $addMediaPlan 
    */ 
    $addMediaPlan= $this->getPage('AddMediaPlan'); 
    $addMediaPlan->deleteMediaPlanLines(); 
} 

public function deleteMediaPlanLineCheckbox() 
{ 
    $this->getElement('deleteMediaPlanLineArea')->click(); 
    $this->getSession()->wait(2000); 
    $element = $this->getElement('deleteMediaPlanLineCheckbox'); 
    $this->scrollWindowToElement($element); 
    $element->click(); 
    $this->getSession()->wait(4000); 
} 

public function deleteMediaPlanLines() 
{ 
    $this->getSession()->wait(2000); 
    $this->getElement('deleteMediaPlanLines')->click(); 
    $this->getSession()->wait(800000); 
} 

public function deletePopUpYes() 
{ 
    $this->getElement('deletePopUpYes')->click(); 
    $this->getSession()->wait(2000); 
} 

public function deletePopUpNo() 
{ 
    $this->getElement('deletePopUpNo')->click(); 
    $this->getSession()->wait(2000); 
} 

근무 통지

http://i58.tinypic.com/1z3qpsw.png

,451,515,

깨진 통지

그리고 here는 동영상입니다.

+0

나는 어떻게 생겼는지에 대한 이미지를 보지 못했습니다. 귀하가 제공 한 정보는 문제의 위치를 ​​이해하는 데 매우 제한적입니다. 코드를 제공하십시오. 또한, 그것이 Behat없이 정상적으로 실행된다면 Behat과 똑같이 실행되어야합니다 (같은 브라우저를 사용하는 것). –

+0

나는 이것을 읽은 대부분의 사람들을 혼란스럽게하는, 팝업이 아닌 알림이라고하는 질문을 업데이트했습니다. –

답변

3

모든 것을 올바르게 이해하면 팝업이 아니라 알림에 대해 이야기하고있는 것입니다. 현재까지의 알림은 실험적인 기능으로 많이 남아 있으며 일부 브라우저는 지원하지 않습니다. 또한 API를 지원하는 브라우저는 API를 호출하기 위해 서로 다른 API를 가지고 있다고 가정합니다. 어느 API도 Behat에서 사용하는 Webdriver API의 일부는 아닙니다.

알림을 올바르게 표시하는 방법을 찾을 수는 있지만 확실히 상호 작용할 수는 없습니다. 내 생각을 뒷받침하는 다른 answer이 있습니다.

비디오에서 Chrome이 보안에 대해 불평하고있는 것을 볼 수 있습니다.이 값이 정의되지 않은 값을 얻는 이유는 문제 일 수 있습니다. 해결 방법은이 설정을 셀 세션에 전달하는 것입니다 (이것은 Behat 3 구성 예입니다) :

멋진 질문이지만 downvoted하지 않아야합니다.

+0

서식을 작성하고 질문에 답해 주셔서 감사합니다. 나는 behat.yml에서 위의 코드를 시도하고 extra_capabilities는 "behat.extensions.behat_minkextension_extension.selenium2.capabilities" 에서 [심포니 \ 구성 요소 \ 구성 \ 정의 \ 예외 \의 InvalidConfigurationException] 인식 할 수없는 옵션 "extra_capabilities을"인식되지 않습니다 실례가 있습니까? – nocturnalsteve

+0

작동 예제입니다. Behat 2를 사용하는 경우 구문이 다를 수 있습니다 (지원되는 경우). 인터넷 검색은 유망한 결과를 반환하지 않으며 운이 없다고 생각합니다. 업그레이드를 최대한 활용하려면 업그레이드해야합니다. –