面对 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());
点击保存按钮后,会打开一个弹出窗口,我在下面写了一段代码来接受,但它不起作用。
`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());