【发布时间】:2019-12-04 03:45:14
【问题描述】:
对于我在量角器中的 e2e 测试,我想为我的 Angular 项目中的各种路线截取屏幕截图。因此,我编写了以下代码,该代码从 url 数组中获取一个 url,并将其提供给以下函数。我为 chrome 运行了这段代码,它运行良好,所有屏幕截图都被拍摄并保存在所需的位置,但是当我为 Firefox 运行它时,它会从 39 个 url 的数组中抛出大约 4-5 个 url 的错误,这 4-5 个 url 可能在第二次运行时更改它可能会或可能不会发生在相同的 url 上。
async function WantToTakeGoldenScreenshots(urlForWhichScreenshot,rank){
console.log("1")
await browser.get(urlForWhichScreenshot)
console.log("2")
const png = await browser.takeScreenshot()
var ImagePath = path + RouteName
var stream = createWriteStream( ImagePath+'.png');
stream.write(Buffer.from(png, 'base64'));
stream.end;
console.log("3")
}
describe('Function to take golden screenshot of all url in list', () => {
var urlListlength = urlList.length
for (let i = 0; i < urlListlength; i++) {
it('screenshot taken', async() => {
console.log("0")
await WantToTakeGoldenScreenshots( urlList[i],i)
console.log("test end")
// Goto Function(2a)
});
// }
}
});
抛出的错误是:
0
1
✗ screenshot taken
- Failed: Error while running testForAngular: JavaScriptError: Document was unloaded
NOTE: In console 2 and 3 are not printed but in cases that passes all are shown in a sequence
我无法解决这个问题我之前没有使用 async await 所以认为这可能是问题所以我补充说,现在它也不起作用。我该怎么办?
【问题讨论】:
-
@yevhen 你对此有什么想法吗?
-
.then() ;{和stream.end;似乎真的错了。 -
@Bergi 那我该怎么办?
-
嗯,你想让这些做什么?查看他们的文档,了解如何正确使用它们。 (或者
.then()的情况,以你的其他用法为例) -
我应该也添加我的配置文件吗?
标签: javascript angularjs typescript jasmine protractor