首页 > 解决方案 > 登录时出现Angular e2e测试超时问题

问题描述

我在编写 angulae e2e 量角器测试时遇到问题,我在尝试使用正确的电子邮件和密码测试登录时总是遇到超时错误。

describe("login view", () => {
  const app = new App();
  const login = new LoginPage();

  beforeAll(() => {
    app.navigateTo(BASE_URL);
    app.clearLocalStorage();
  });

  it("should login successfully", async () => {
    await Promise.all([login.clearPassword(), login.clearUsername()]);
    login.username = E2E_USERNAME;
    login.password = E2E_PASSWORD;
    login.submit.click();
    const currentUrl = await app.currentUrl;
    expect(currentUrl).toEqual(LABORATORIES_URL);
  });
export class LoginPage {
  private usernameInput = element(by.id("loginFormUsernameInput"));
  private passwordInput = element(by.id("loginFormPasswordInput"));
  private confirmButton = element(by.id("loginFormConfirmButton"));
  
  public set username(username: string) {
    this.usernameInput.sendKeys(username);
  }
  public set password(password: string) {
    this.passwordInput.sendKeys(password);
  }
  public get submit(): ElementFinder {
    return this.confirmButton;
  }
}

我正在处理节点:10.19.0。包.json:

 "devDependencies": {
    "@angular/cli": "^6.2.9",
    "@angular/compiler-cli": "^6.1.3",
    "protractor": "^5.4.1",

正在寻找解决此问题的方法,任何人都可以提供帮助吗?

标签: angularjasmineprotractor

解决方案


你能分享一下你的login.clearUsername()和的定义login.clearPassword()吗?

或者await Promise.all([login.clearPassword(), login.clearUsername()]);,与其在规范文件中使用,不如稍微改变一下你的吸气剂,就像这样。

 public set username(username: string) {
    this.usernameInput.clear();
    this.usernameInput.sendKeys(username);
  }
  public set password(password: string) {
    this.passwordInput.clear();
    this.passwordInput.sendKeys(password);
  }


推荐阅读