我的注册流程/表单通过 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%成功,但我还是没有得到确认电子邮件,这意味着测试没有按预期运行。
submitButton
后我应该打开的打开对话窗口有关,我没有测试它(在我的代码中)?我还要提到的一件事是,如果缺少用户数据并且未检查tc(复选框),则会禁用该按钮。
答案 0 :(得分: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();
});
});
以下posting非常有帮助!