这就是问题所在。我正在使用Serenity在Internet Explorer中运行测试,并PageObject
通过 Serenity 的步骤或通过Junit测试中的直接引用来处理我的所有操作。
我目前正在处理的场景很简单:
- 在字段中输入日期(输入“99999999”)。
- 单击提交按钮。
- 获取弹出警报消息。
- 获取“年份无效”。先发信息。
- 获取“无效的收据日期格式”。消息第二。
但是,PageObject
似乎立即跳转到第二条消息并完全忽略了第一条。我的实现是这样的:
@Test
public void receiptDateFieldIncorrectDateFormat() {
page.open();
steps.inputIntoReceiptDateField("99999999");
steps.clickSubmitButton();
String firstMsg = page.getAlert().getText();
page.getAlert().accept();
String secondMsg = page.getAlert().getText();
page.getAlert().accept();
Assert.assertEquals("The year is invalid.", firstMsg);
Assert.assertEquals("Invalid Receipt Date format.", secondMsg);
}
有人可以向我解释这是如何工作的,为什么省略了第一个警报?PageObject
似乎没有循环浏览多个警报的功能。
谢谢!
编辑
下面是JavaScript的样子。对第二个执行类似if
的语句Alert
。
temp = inputDate.substring(0, 4);
//alert("year " + temp);
if (temp > 2500 || temp < 1940) {
alert ("The year is invalid");
return false;
}
结果: