Angular Protractor测试运行后是否可以让测试浏览器窗口打开?我在FireFox中进行了严格的测试失败,并且访问网页状态以查看正在进行的操作非常有用。
答案 0 :(得分:46)
您可以使用Protractor调试/暂停功能暂停e2e运行,最终使浏览器保持打开状态:more info here
为此,请在失败的
之前在量角器测试中添加此行browser.pause();
还有一个名为elementor的非常有用的工具,您可能希望稍后查看。
答案 1 :(得分:8)
browser.pause
不再适用于当前的Node v8.1.0,请参阅here,但您可以使用browser.sleep(10000);
将浏览器保持打开状态,例如10秒
答案 2 :(得分:2)
如果您将测试脚本配置为使用grunt运行,则可以使用以下代码:
grunt.initConfig({
// ...
protractor: {
options: {
configFile: "protractor.conf.js",
keepAlive: true, // If false, the grunt process stops when the test fails.
noColor: false // If true, protractor will not use colors in its output.
},
run: {}
},
// ...
});
答案 3 :(得分:2)
如果您有节点8+,在尝试"Error: Cannot find module '_debugger'"
the accepted answer解决方案时遇到问题this github solution并且您无法使用{{3}}修复它,那么您可以解决它如下:
安装量角器作为自动化框架的模块(即没有browser.pause
标志)
-g
也为此量角器实例运行npm install protractor
:
webdriver-manager update
您的代码中node ./node_modules/protractor/bin/webdriver-manager update
的位置,请将其替换为browser.pause();
语句
运行您的代码如下:
debugger;
node inspect ./node_modules/protractor/bin/protractor protractorConf.js
是量角器实例的配置文件
如果protractorConf.js
在命令行等待您的输入,只需键入debugger
并按Enter(到cont
执行)
答案 4 :(得分:0)
这个想法是,您并不是真正想要保持会话状态,而是在测试完成后将其暂停很长时间,并能够随时恢复关闭程序
因此,只需将其添加到您的config.js
async onComplete() {
await browser.waitForAngularEnabled(false);
await browser.wait(
async () => {
let url = await browser.getCurrentUrl();
return url.includes('close/');
},
5 * 60 * 1000,
'Keep-alive timeout reached, closing the session...',
);
},
代码的作用是,在所有测试通过或失败之后,它会一直等到您在浏览器的url字段中键入并提交close/
或在5分钟后超时。
这里需要await browser.waitForAngularEnabled(false);
的原因,因为当您键入非角度的close/
时浏览器会打开一个空白页面
根据传递给量角器配置的参数,您甚至可以对其进行改进并使其成为有条件的