0

我确实有一个通过 , 和一个具有布尔值的复选框的注册email过程password/confirmPass表单tc

当用户提交表单时,会打开一个带有文本的开放式对话,另一方面会向用户发送一封电子邮件以确认他的注册。一切正常。

为了对此过程运行 E2E 量角器测试,我编写了以下代码:

it("Should register the user and send confirmation email", () => {

    page.getInputFields().userEmailInput.sendKeys("myFirstName.myLastName@domain-xxx.com");
    page.getInputFields().userPassInput.sendKeys('!Q2w3e4r');
    page.getInputFields().userConfirmPass.sendKeys('!Q2w3e4r');
    element(by.tagName('mat-checkbox')).click();

    expect( page
        .getInputFields()
        .userEmailInput.getAttribute("value") ).toEqual("myFirstName.myLastName@domain-xxx.com");

    expect(page
        .getInputFields()
        .userPassInput.getAttribute("value") ).toEqual('!Q2w3e4r');

    expect(page
        .getInputFields()
        .userConfirmPass.getAttribute('value') ).toEqual('!Q2w3e4r');

    element( by.tagName('mat-checkbox') ).isSelected().then(function(selected) {
        if (selected) {
            element( by.name('mat-checkbox') ).click();
            expect( page.getInputFields().userAccept.isSelected() ).toBe(true);
            page
        .getInputFields()
        .submitButton.click();
        }
    });
});

测试也运行没有错误。但我的问题是,我希望在测试后我会在收件箱中收到确认电子邮件,另一方面这证明我测试是 100% 成功的,但我只是没有收到确认电子邮件,这意味着测试并没有真正按预期运行。

  1. 是否可以运行测试以发送确认电子邮件?
  2. 测试代码是否错误并且我确实有逻辑错误?
  3. 它与单击后应该打开的打开的对话窗口有关submitButton并且我没有测试它(在我的代码中)吗?

我仍然要提到的一件事是,如果缺少用户数据并且未选中 tc(复选框),则该按钮将被禁用。

4

1 回答 1

1

问题已解决,这是工作代码:

it("Should register the user and send confirmation email", () => {

    page.getInputFields().userEmailInput.sendKeys("myFirstName.myLastName@domain-xxx.com");
    page.getInputFields().userPassInput.sendKeys('!Q2w3e4r');
    page.getInputFields().userConfirmPass.sendKeys('!Q2w3e4r');
    element(by.tagName('mat-checkbox')).click();

    expect( page
        .getInputFields()
        .userEmailInput.getAttribute("value") ).toEqual("myFirstName.myLastName@domain-xxx.com");

    expect( page
        .getInputFields()
        .userPassInput.getAttribute("value") ).toEqual('!Q2w3e4r');

    expect( page
        .getInputFields()
        .userConfirmPass.getAttribute('value') ).toEqual('!Q2w3e4r');

    browser.wait(protractor.ExpectedConditions.elementToBeClickable( element( by.name('submitForm') ) ), 100000)
            .then ( () => {
                browser.actions().mouseMove( element( by.name('submitForm') ) ).click().perform();
            }).then ( () => {
                browser.sleep(500);
                browser.actions().mouseMove( element( by.name('submitForm') ) ).click().perform();
            });

});

下面的帖子很有帮助!

于 2018-01-31T08:40:18.940 回答