ウェブサイトアプリケーションのテストの開発を始めましたが、いくつか問題があります。
Node.js、webdriver、chromedriver、Selenium rcを使用しています。
質問は次のとおりです。1.スクリーンショットを作成して、スクリプトと同じフォルダーに保存するにはどうすればよいですか。 2.テストケースのテストログを保存する方法はありますか?たとえば、ページの要素を確認しても見つからない場合、どのように出力しますか?
テストログを保存するには、通常、テストランナーを使用します。要素がページ上にあり、それが見つからないかどうかを確認すると、例外(通常はアサーションエラー)が発生し、テストランナーがこれを記録して、失敗したテストとしてマークします。 ドキュメントでは、Mochaの使用を推奨しています 。
スクリーンショットをディスクに保存する場合、 the api は次のようになります
driver.takeScreenshot().then(
function(image, err) {
require('fs').writeFile('out.png', image, 'base64', function(err) {
console.log(err);
});
}
);
参考までに、これは WebdriverJS でスクリーンショットを撮る方法です。
var webdriverjs = require('webdriverjs'),
client = webdriverjs.remote({
desiredCapabilities: {
browserName: 'chrome'
}
});
client
.init()
.url('http://google.com')
.saveScreenshot(__dirname + '/googleScreenshot.png')
.end();
WebdriverCSS を使用してスクリーンショットを撮ることもできます。 CSS回帰テストを行うためのWebdriverJSのプラグインです。 PhantomCSS とほとんど同じです。
ファイルの書き込み後に解決し、書き込み失敗時に拒否する完全な約束への aychedee の適応:
const util = require('util')
const fsp = require('fs').promises
function takeScreenshot(driver, file){
return driver.takeScreenshot()
.then(image => fsp.writeFile(file, image, 'base64'))
}
または async
関数で
async function takeScreenshot(driver, file){
let image = await driver.takeScreenshot()
await fsp.writeFile(file, image, 'base64')
}