我有一个方案,点击"保存"按钮可以根据输入的数据提供三种不同的警报。它可以成功保存","用户已注册"和"用户名已存在"警报。我试过了:
driver.findElement(By.id("dnn_ctr5995_View_btnsavesession")).click();
Thread.sleep(10000);
Alert alert = driver.switchTo().alert();
String A = alert.getText();
if (A == "Username already exist"){
System.out.println("Admission number already exist.");
alert.accept();
} else if (A == "User already registered"){
System.out.println("User already registered");
alert.accept();
} else if (A == "Saved Successfully."){
System.out.println("Saved Successfully.");
alert.accept();
}
但它显示无警报存在异常。我已经尝试过增加睡眠时间但仍显示相同的异常。
答案 0 :(得分:0)
看起来您的点击实际上没有点击,因为“保存' id在元素中没有。 试着这样做:
driver.findElement(By.cssSelector("[id*=save"])).click();
然后试图抓住警报。请注意' *'在选择器。
答案 1 :(得分:0)
根据Html共享,元素的id不是" save"。所以共享代码的第一行应该稍微修改一下以实现输出。
将元素标识标记更改为:
driver.findElement(By.id("dnn_ctr5995_View_btnsavesession")).click();
或者如果' id'元素在每个实例上都在变化,然后可以更改为:
driver.findElement(By.xpath("//*[contains(@id,'_View_btnsavesession')]")).click();
答案 2 :(得分:0)
我猜你实际上从未打电话给alert.accept()
,因为你使用的是A == "User already registered"
而不是"User already registered".equalsIgnoreCase(A)
。如果您更改了if
条件,则可以解决您的问题。