浏览器在量角器中重启后重新初始化辅助类

时间:2017-02-06 05:58:27

标签: protractor

我正在使用量角器测试一个角度应用程序,我配置为在conf文件中的每个测试后重新启动浏览器。但是它会导致会话错误。我能够将其跟踪到我设置的使用预期条件的辅助类。

'use strict';
let EC = browser.ExpectedConditions;
let timeOut = 30000;

class ProHelper {
  constructor() {}

  async waitForUrl(urlSubstring, time = timeOut) {
    let isMatchingUrl = EC.urlContains(urlSubstring);
    await browser.wait(isMatchingUrl, time, `Timed out waiting for ${urlSubstring}`);
  }

  ...
}
module.exports = ProHelper

辅助类在页面对象类和某些规范中使用。第一次测试运行良好。然而,第二个将在使用其中一个辅助方法后立即失败。似乎辅助方法仍然引用原始浏览器实例。我尝试在构造函数内部和方法内部声明EC,但是我得到了同样的错误。有没有办法在浏览器重启后重新初始化助手类?

1 个答案:

答案 0 :(得分:0)

我做了一些改变以解决这个问题。

  1. 从规范中删除了帮助程序的使用。它现在仅用于页面对象类。
  2. 第二我更改了browser.ExpectedConditions;到protractor.ExpectedConditions。
  3. 我没有使用restartBrowserBetweenTests,而是在afterEach中为每个规范添加了browser.restart()。
  4. 这解决了我的会话问题。