如何在webdriverjs中等待截图截图
How to wait in webdriverjs for takeScreenshot to have the screenshot taken
本文关键字:等待 webdriverjs 更新时间:2024-01-11
我使用以下类型的代码进行屏幕截图:
var promise = driver.takeScreenshot();
promise.then(function (data) {
var base64Data = data.replace(/^data:image'/png;base64,/, '');
fs.writeFileSync('screenshot.png', base64Data, 'base64');
});
由于takeScreenshot的异步性质,不幸的是,屏幕截图将在任意时间点进行,如果在此期间应用程序抛出异常,则根本不会编写屏幕截图。
使用webdriverjs同步拍摄屏幕截图的正确方法是什么?
我通常在After
挂钩中进行屏幕截图。以下是cucumberjs中after Hook的示例代码。如果你用的是摩卡,它也有钩子。
this.After(function (scenario, callback) {
if(scenario.isFailed()){
driver.takeScreenshot().then(function (buffer) {
scenario.attach(new Buffer(buffer, 'base64').toString('binary'), 'image/png');
});
}
driver.quit().then(function () {
callback();
});
});
以下是WebDriverJS文档的一些摘录。因此,在截屏之前,您可以在特定条件下向WebDriver发送等待命令,然后也进行截屏。在钩子工作后的一般测试框架中最好的
WebDriverJS uses a promise "manager" to coordinate the scheduling and execution of all commands.
The promise manager maintains a queue of scheduled tasks, executing each once the one before it in the queue is finished.
相关文章:
- 单击按钮以等待单击按钮
- React组件等待所需道具进行渲染
- 正在等待呈现图表,直到加载数据为止
- 在等待ajax请求时显示微调器并禁用页面
- Javascript在for循环中等待处理请求
- JavaScript循环并等待函数
- 在等待异步任务时永久循环
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- 等待300毫秒,然后使用jQuery向下滑动菜单
- 等待循环调用的所有承诺完成
- 等待回调函数执行
- RxJS等待承诺解决
- WIll window.addEventListener(“加载”,function(),false);等待浏览器自动填
- Casperjs等待资源
- draggableCursor没有't更改为等待光标
- 如何使请求等待上一个请求完成
- 更改css链接并等待加载新的css
- 如何在webdriverjs中等待截图截图
- 如何在WebDriverJS中等待元素可点击