面对 Alertbox selenium 3.0 中的问题

Facing issues in Alertbox selenium 3.0

点击保存按钮后,会打开一个弹出窗口,我在下面写了一段代码来接受,但它不起作用。

   `driver.findElement(By.id("save")).click();
    Alert succ=driver.switchTo().alert();
    System.out.println(succ.getText());
    Thread.sleep(2000);
    succ.accept();`

需要帮助。

试试这个:

driver.findElement(By.id("save")).click();
try {
    Thread.sleep(3000);
} catch (InterruptedException e) {
    e.printStackTrace();
}
System.out.println(driver.switchTo().alert().getText());
driver.switchTo().alert().accept();

selenium 的行为因浏览器而异,在某些情况下,在 Firefox 浏览器中完成的操作(例如表单填写操作或单击按钮)比 Chrome 浏览器更快,因此您的脚本在 chrome 但是在 Firefox 中会抛出错误,所以你需要添加一些暂停来让它们表现良好。

因此在您的情况下,在单击保存按钮后,selenium 执行命令的速度太快,因此请跳过以打开警报并接受,因此使用 Thread.sleep(); 添加一些等待以暂停

driver.findElement(By.id("save")).click();
Thread.sleep(2000);
Alert succ=driver.switchTo().alert();
System.out.println(succ.getText());
Thread.sleep(2000);
succ.accept();

注意:不建议使用Thread.sleep();,而是使用隐式或显式等待条件

WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.alertIsPresent());