0

我已将 Angular JS(1.5) 应用程序迁移到混合应用程序。我同时使用 Angular6/AngularJS (1.6)。我正在尝试为角度 js 页面运行现有 e2e 测试的量角器 e2e。

我所有现有的测试都运行得非常快。并且大多数 e2e 测试现在都因“元素不可见”或“元素未启用”等原因而失败,所以现在我在多个地方添加了等待元素以修复它们。他们跑得太快的任何原因?我有数百个测试用例,在测试用例中等待是一项耗时的任务。

我用来让它们通过的任何其他设置,因为这些设置在仅 Angular JS 的应用程序中运行良好。

在 Angular JS 应用程序中,我的量角器版本是“4.0.9”和“webdriver-manager”:“10.2.3”。现在在移动到一个角度混合应用程序之后,这里更新了版本

我的量角器版本:量角器“:”^5.3.2“webdriver-manager”:“12.0.6”,“selenium-webdriver”:“4.0.0-alpha.1”,

节点版本:`8.11.3 Protractor 版本:5.3.2 Angular 版本:6.0.4 AngularJS 版本:1.6.4 浏览器:Chrome、firefix

4

1 回答 1

-1

您不需要在测试中的每个操作之前添加服务员。您可以使用一些常见操作来实现包装器。看看这个想法:

public async clickOn(): Promise<void> {
    try {
      await this.waitForClickable();
    } catch (e) {
      throw new Error(`Can not click on fragment of not clickable fragment. ${e}`);
    }
    await this.click();
  }

  public async type(text: string): Promise<void> {
    await this.clearInput();
    await this.sendKeys(text);
  }

  public async clearInput(): Promise<void> {
    try {
      await this.waitForVisible();
    } catch (e) {
      throw new Error(`Can not clear the input of not visible fragment. ${e}`);
    }
    await this.clear();
  }

我希望你能明白。

于 2018-07-14T11:24:28.650 回答