如何处理弹出消息SeleniumWebDriver-Java

如何处理弹出消息SeleniumWebDriver-Java,java,selenium-webdriver,Java,Selenium Webdriver,我目前正在创建一个脚本,将测试一个网站的功能。当前我被一条弹出消息阻止,该消息在满足某些条件时出现,当弹出消息出现时,如果我添加类似driver.findElementBy.xpath//div[4]/div/div/div/div/div/button的内容,我的脚本将失败; 当弹出窗口未出现时,脚本将失败。 我的问题是:有没有办法检查按钮是否存在,然后单击按钮x,如果没有,则向前移动。我知道在执行什么操作后,单击消息会显示/不显示。 请记住,我现在正在学习java和selenium。使用Al

我目前正在创建一个脚本,将测试一个网站的功能。当前我被一条弹出消息阻止,该消息在满足某些条件时出现,当弹出消息出现时,如果我添加类似driver.findElementBy.xpath//div[4]/div/div/div/div/div/button的内容,我的脚本将失败; 当弹出窗口未出现时,脚本将失败。 我的问题是:有没有办法检查按钮是否存在,然后单击按钮x,如果没有,则向前移动。我知道在执行什么操作后,单击消息会显示/不显示。
请记住,我现在正在学习java和selenium。

使用Alert类处理弹出窗口

警报警报=driver.switchTo.Alert;
警惕。接受

您可以使用显式等待按钮:-

WebDriverWait wait = new WebDriverWait(driver,10)
WebElement btn = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("---")));
然后,要解除/接受警报消息,请使用以下代码:-

 driver.switchTo().alert().dismiss();
 driver.switchTo().alert().accept();
巴努

你是对的,你应该使用if-else条件。 因为您确切地知道弹出框出现的条件,并且可以在if条件中使用弹出文本


我尝试使用显式等待,我得到org.openqa.selenium.NoAlertPresentException:在尝试获取对话框文本时,没有打开选项卡模式,我正在考虑使用IF方法。如果没有礼物,请前往BBanu,我不确定您的应用程序的导航/性质。我建议显式等待,因为您想确定按钮是否存在,然后想单击按钮。您可能已经得到了为函数添加异常的建议,因此如果情况是这样,请添加该异常。欢迎使用堆栈溢出!请阅读并提供您尝试过的代码和执行结果,包括任何错误消息等。同时提供指向页面和/或相关HTML的链接。
driver.switchTo().alert().getText();