当尝试使用ExpectedConditions显式等待元素变得可见时,Visual Studio警告我它现在已经过时,很快就会从Selenium中删除.
实现相同结果的当前/新方法是什么?
var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 30));
var element = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("content-section")));
Run Code Online (Sandbox Code Playgroud) 我想检测是否弹出警报.目前我使用以下代码:
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) {
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果对网页的当前状态没有警觉,等待特定的时间量,直到达到超时,则抛出一个异常,因此性能实在是太差了.
有没有更好的方法,也许是一个警报事件处理程序,我可以用它来动态发生警报?
我正在努力写一个测试; 我想检查是否存在警报,检查其文本是否存在并接受它.
我检查了如何在Selenium webdriver中等待警报?,如何使用WebDriver检查是否存在警报?和selenium 2.4.0,如何检查是否存在警报,但我无法使用https://github.com/admc/wd进行调整
我写过一些东西
browser.alertText(function (err, text) {
if (text) {
browser.acceptAlert(function () {
// ...
});
}
});
Run Code Online (Sandbox Code Playgroud)
显示警报时效果非常好,但alertText没有警报窗口时会挂起.
如何在发布之前检查警报是否存在alertText?
谢谢你的帮助,