2017-01-24 10 views
0

cucumber-js를 사용하여 selenium-webdriver에서 테스트를 실행하고 있습니다. 단계 시간이 초과되면 브라우저의 캡쳐 화면 캡처를 추가하고 싶습니다. 내 후크 파일에cucumber-js에 시간 초과 이벤트가 있습니까

this.setDefaultTimeout(3 * 60 * 1000); 

: 나는 모든 단계에 대한 글로벌 타임 아웃을 사용하고 있습니다.

글로벌 타임 아웃 이벤트에 등록하려면 어떻게합니까?

+0

은 당신이 스크린 샷을 촬영해야 할 시간 제한에인가, 또는 실패에 대한 이유는 벌레처럼 아무것도 할 수있다, 또는 DEFAULT_TIMEOUT

당신은 당신의 world.js이를 추가 할 필요가 오류가 발생하면 스크린 샷을 찍는 것이 좋을까요? –

+0

"요소 대기"호출이 시간 초과되어 대부분의 시간이 실패하기 때문에 시간 초과를 선호합니다. 나는 그 특별한 경우의 스크린 샷을 찍어서 왜 그 요소가 결코 나타나지 않는지 말할 수 있습니다. – Buzzy

답변

1

셀레늄 Webdriver의 JS가 스크린 샷을 얻는 기능을 제공 할, 당신은 단지 After 시나리오는 기능의 모든 시나리오 후 실행하고 결과를 확인합니다 TestNG

@AfterClass 태그 유사하다, After에서 사용합니다 시나리오, 그것은 스크린 샷 걸릴 FAILED입니다.

this.After(function (scenario) { 

    if (scenario.isFailed()) { 

     // take a screenshot 
     // driver.takeScreenshot() is defined in webDriver.js 
     return driver.takeScreenshot() 
      .then(function (screenShot) { 
       scenario.attach(new Buffer(screenShot, 'base64'), 'image/png'); 
       return driver.close() 
       .then(function() { 
        return driver.quit(); 
       }); 
      }); 
    } 
    else { 
     return driver.close() 
      .then(function() { 
       return driver.quit(); 
      }); 
    } 
});