gpt4 book ai didi

java - 如何处理 Selenium WebDriver 中的间歇性警报?

转载 作者:行者123 更新时间:2023-11-29 04:27:38 25 4
gpt4 key购买 nike

我有一个自动化场景,有时系统返回 javascript 警报,有时根本不返回。不知道是什么原因,估计是网络问题。我已经为此创建了警报处理程序:

public boolean isAlertPresent() {
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.alertIsPresent());
return true;
}

我在我的步骤之一中调用它,有时会出现警报:

public WSSPage enterAndSearchContent(String title) throws InterruptedException {
waitForElementTextWithEnter(searchTextField, title);
while (isAlertPresent()){
Alert alert = driver.switchTo().alert();
alert.dismiss();
break;
}
return PageFactory.initElements(driver, WSSPage.class);
}

问题是当警报没有出现时,它会给我 NoAlertPresentException,自动化结果将失败。如果警报没有发生,我希望代码继续移动到下一行,在这种情况下,它只会返回 PageFactory.initElements(driver, WSSPage.class);你能帮我提供一个更好的代码吗?非常感谢。

最佳答案

JavascriptExecutor 为您效劳。请注意,您应该在单击调用警报的事件之前执行它。

((JavascriptExecutor) driver).executeScript("window.confirm = function(msg) { return true; }");

注意:- 不要在点击调用警报确认框的事件后使用它。上面的代码默认将确认框设置为 true 意味着如果调用,您将接受/单击该页面上所有确认框的确定

希望对你有帮助:)

关于java - 如何处理 Selenium WebDriver 中的间歇性警报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45474930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com