Selenium webdriver 如何处理SeleniumWebDriver中出现的不可预测和不需要的弹出窗口,即使这不是预期的行为
在我们的应用程序中,有时会出现弹出窗口,但这不是预期的行为,一旦该弹出窗口显示,其余脚本将失败,因为重点是弹出窗口。所以,你能指导我解决这个问题吗?如果它经常发生在同一个地方,你可以像这样处理它Selenium webdriver 如何处理SeleniumWebDriver中出现的不可预测和不需要的弹出窗口,即使这不是预期的行为,selenium-webdriver,Selenium Webdriver,在我们的应用程序中,有时会出现弹出窗口,但这不是预期的行为,一旦该弹出窗口显示,其余脚本将失败,因为重点是弹出窗口。所以,你能指导我解决这个问题吗?如果它经常发生在同一个地方,你可以像这样处理它 public boolean isAlertPresent() { try { driver.switchTo().alert(); return true; } // try catch (Exception e) { retur
public boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} // try
catch (Exception e) {
return false;
} // catch
}
现在,您可以使用上面编写的方法检查警报是否存在,如下所示:
if (isAlertPresent()) {
driver.switchTo().alert();
driver.switchTo().alert().accept();
driver.switchTo().defaultContent();
}
不过我不会把它放在任何地方,因为它会减慢测试速度。您需要做的是-
创建一个函数,用于访问ex的任何元素-
getButton("xpath of your desired xpath").click();
getButton(String Xpath){
if(driver.findElement(By.xpath()).isVisible)
return driver.findElement(By.xpath())
else{
if (isAlertPresent()) {
driver.switchTo().alert();
driver.switchTo().alert().accept();
driver.switchTo().defaultContent();
}
return driver.findElement(By.xpath())
}
}
确保始终调用此函数以从UI访问任何元素 您应该在正在测试的产品中提出一个bug,并在一个干净的分支上工作,而不是试图在测试中解决这个问题。这只会使测试复杂化,并隐藏问题,而不是帮助解决问题。