Alertbox selenium 3.0中面临的问题

Alertbox selenium 3.0中面临的问题,selenium,selenium-webdriver,selenium-chromedriver,selenium-grid,Selenium,Selenium Webdriver,Selenium Chromedriver,Selenium Grid,点击保存按钮后,弹出窗口将打开,我在下面写了一个代码来接受,但它不起作用 `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(

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

   `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());

你收到警报的文本了吗。你可以添加该弹出窗口的快照吗?单击“保存”按钮后添加一些等待,然后打开警报。这可能会执行trickaded driver.manage.timeouts.implicitlyWait20,TimeUnit.SECONDS;但是它不起作用。首先,我们单击所需的元素。2.第二,我们必须等待元素在页面上完全呈现——为此,我们正在编写Thread.sleepsmilisec。3.在这之后,我们确信我们的元素出现在页面上,我们可以对他进行任何操作。