2016-06-30 3 views
0

팝업이 존재하는지 (iframe에서 열림) 확인한 다음 일부 청크 코드를 실행합니다 (해당 프레임으로 전환하고 일부 데이터를 입력 한 후 계속을 클릭하십시오). 단추). 솔루션을 검색하는 동안 특정 항목의 존재 여부를 확인한다는 점을 제외하고는 광산과 동일한 90 % 인 this question을 발견했습니다. 내 경우에는 새 프레임으로 전환 할 때까지 요소를 확인할 수 없습니다.프레임이 Nightwatch의 조건으로 존재하는지 확인합니다.

그래서 document.getElementById 대신 프레임과 비슷한 것을 찾아야합니다. Nightwatch에서 사용할 수있는 것이 있습니까?

var popup =0; 
do { 
    popup =0; 
    klarnaForm.waitForElementVisible('iframe #klarna-fullscreen-iframe',5,false,function (result) { 
      if(result.value) { 
       changeFrame('pop-up'); 
       changeFrame('klarna'); 
       klarnaForm.continueKlarna(); 
       popup = 1; 
       } 
     }); 
} while (popup); 

답변

0

콜백의 외부 팝업 가치를 얻을 :

var popup = browser.getElementById("myFrameId"); 
if (popup!= null){ 
     //chunck of code 
    } 

this thread에 있지만 successs에 언급 한 것처럼 나는 또한 뭔가 시도, 내가이 기능의 하나에 프레임 ID를 전달할 수 없습니다 보인다 ?

var popup =0; 
    browser.waitForElementVisible('iframe #klarna-fullscreen-iframe',5,false,function (result) { 
      if(result.value) { 
       changeFrame('pop-up'); 
       changeFrame('klarna'); 
       klarnaForm.continueKlarna(); 
       popup = 1; 
       } 
     }) 
     .perform(function(browser,done){ 
      console.log(popup); // popup will be 1 if the 'if statement' above was true 
      // do your chuck code here. 
      }); 

PS : 당신이 원하는 것을 예 경우,이 하나를 시도하는 것이 우리가 유지해야하는 이유 현재의 API를 .perform 나던 지원 페이지 객체, 즉 browser 개체입니다.

+0

아니요, 내 코드를 해당 팝업의 존재와 연결시킬 수 있기를 바랍니다. 팝업이있는 경우에만 해당 작업을 수행하십시오. 하지만 그 IF를 코드로 변환하는 방법은 없습니다. – anasarbescu

+0

이 코드의 문제는 프레임에서 waitForElementVisible이 작동하지 않는다는 것입니다. – anasarbescu

관련 문제