2017-01-24 7 views
0

cucumber-jsを使用してselenium-webdriverでテストを実行しています。 ステップタイムアウトが発生した場合、ブラウザのスクリーンショットキャプチャを追加します。私のフック・ファイル内のcucumber-jsにタイムアウトイベントがあります

this.setDefaultTimeout(3 * 60 * 1000); 

: は、私はすべてのステップのためのグローバルタイムアウトを使用しています。

グローバルタイムアウトイベントに登録するにはどうすればよいですか?

+0

だけあなたはスクリーンショットを取ることにしたいタイムアウトでそれをされるか、失敗の 理由はバグのように、何もすることができ、またはDEFAULT_TIMEOUT

はあなたのworld.jsでこれを追加する必要がありますエラーが発生した場合にスクリーンショットを撮る方が良いでしょうか? –

+0

"wait for element"コールがタイムアウトしているため、ほとんどの場合、タイムアウトが優先されるため、タイムアウトが優先されます。これらの特定のケースのスクリーンショットを撮りたいので、なぜ要素が表示されないのかを知ることができます。 – 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(); 
      }); 
    } 
}); 
関連する問題