我想检测是否弹出警报。目前,我正在使用以下代码:
try { Alert alert = webDriver.switchTo().alert(); // check if alert exists // TODO find better way alert.getText(); // alert handling log().info("Alert detected: {}" + alert.getText()); alert.accept(); } catch (Exception e) { }
问题是,如果网页的当前状态没有警报,它将等待特定的时间,直到达到超时,然后引发异常,因此性能真的很差。
有没有更好的方法,也许可以将警报事件处理程序用于动态发生的警报?
这是使用“从此处进行显式等待”对我有用的WebDriver:高级用法
public void checkAlert() { try { WebDriverWait wait = new WebDriverWait(driver, 2); wait.until(ExpectedConditions.alertIsPresent()); Alert alert = driver.switchTo().alert(); alert.accept(); } catch (Exception e) { //exception handling } }