角度量角器 - 在E2E测试后保持浏览器打开

时间:2014-04-29 19:02:16

标签: angularjs protractor

Angular Protractor测试运行后是否可以让测试浏览器窗口打开?我在FireFox中进行了严格的测试失败,并且访问网页状态以查看正在进行的操作非常有用。

5 个答案:

答案 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}}修复它,那么您可以解决它如下:

  1. 安装量角器作为自动化框架的模块(即没有browser.pause标志)

    -g
  2. 也为此量角器实例运行npm install protractor

    webdriver-manager update
  3. 您的代码中node ./node_modules/protractor/bin/webdriver-manager update 的位置,请将其替换为browser.pause();语句

  4. 运行您的代码如下:

    debugger;

    node inspect ./node_modules/protractor/bin/protractor protractorConf.js 是量角器实例的配置文件

  5. 如果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分钟后超时。

enter image description here

这里需要await browser.waitForAngularEnabled(false);的原因,因为当您键入非角度的close/时浏览器会打开一个空白页面

根据传递给量角器配置的参数,您甚至可以对其进行改进并使其成为有条件的