我有一个命令webDriver.switchTo().alert();
,它有一个超时并等待它发现一个警报或经过的时间大于超时值。我想减少这个特定命令的超时,但没有找到办法。我该怎么办?
如果可能的话,我想将超时设置为零,但在alert命令之后又恢复为默认值。
更新
这是Selenium的核心功能,我按如下方式使用它:
try {
// TODO PERFORMANCE PROBLEM BECAUSE OF TIMEOUT IF NO ALERT EXISTS
Alert alert = webDriver.switchTo().alert();
// check if alert exists
if(alert != null) {
String alertText = alert.getText();
// TODO alert handling
log.info("Alert detected: {}", alertText);
}
} catch (Exception e) {
// timeout if alert does not exist
}
答案 0 :(得分:1)
如果没有看到包装该方法调用的类,我将不得不猜测。我的猜测是你在等待警报或其他一些阻塞的功能,直到页面加载完成或文档完成之前。因此无论阻止脚本是什么,都应该通过在调试中运行应用程序并逐步执行这些方法来验证。如果你想发布更多代码,那么我可以帮助你更好。
--------编辑----------
您能够做到这一点的唯一方法是在Selenium命名空间中扩展Alert类。因为即时失败而超载它,我猜它正在使用某种形式的javascript切换到警报,你应该能够在第一次尝试时指定失败。我无法给你任何具体的代码,因为我找不到Alert类的源代码。