Java Selenium测试-Firefox警报立即消失

Java Selenium测试-Firefox警报立即消失,java,selenium,firefox,selenium-webdriver,alert,Java,Selenium,Firefox,Selenium Webdriver,Alert,我正在Firefox上编写一个处理警报的Selenium测试。运行测试时,警报会出现几秒钟,但手动完成后,警报将持续。谁能告诉我为什么会这样 我尝试在Firefox上设置此配置文件,但也没有帮助: profile.setPreference("alerts.disableSlidingEffect", true); 有人能告诉我如何让警报留在页面上吗 在代码中,我检查警报是否存在,如下所示,由于警报消失得太快,因此显然从未被击中: WebDriverWait wait = new WebDri

我正在Firefox上编写一个处理警报的Selenium测试。运行测试时,警报会出现几秒钟,但手动完成后,警报将持续。谁能告诉我为什么会这样

我尝试在Firefox上设置此配置文件,但也没有帮助:

profile.setPreference("alerts.disableSlidingEffect", true);
有人能告诉我如何让警报留在页面上吗

在代码中,我检查警报是否存在,如下所示,由于警报消失得太快,因此显然从未被击中:

WebDriverWait wait = new WebDriverWait(webDriver, Long.parseLong(parameters[0]));
wait.until(ExpectedConditions.alertIsPresent());

我不认为“alerts.disableSlidingEffect”Firefox配置文件选项会导致警报消失-相反,请尝试使用设置为“ignore”的unexpectedalertbehaviour功能创建WebDriver实例。

unexpectedalertbehaviour有3种状态:

  • 接受
    -接受警报
  • 解除
    -关闭/取消警报
  • 忽略
    -既不接受也不关闭警报
  • DesiredCapabilities dc=新的DesiredCapabilities(); dc.setCapability(CapabilityType.UNEXPECTED\u ALERT\u行为,UNEXPECTED AlertBehaviour.IGNORE); 驱动程序=新的Firefox驱动程序(dc); 然后,您可以通过执行触发警报并将其捕获为预期异常的操作来处理警报:

    try { click(myButton); } catch (UnhandledAlertException f) { try { Alert alert = driver.switchTo().alert(); String alertText = alert.getText(); System.out.println("Alert data: " + alertText); alert.accept(); } catch (NoAlertPresentException e) { e.printStackTrace(); } } 试一试{ 点击(我的按钮); }捕获(未处理的AlertException f){ 试一试{ Alert Alert=驱动程序.switchTo().Alert(); String alertText=alert.getText(); System.out.println(“警报数据:+alertText”); alert.accept(); }捕获(NoAlertPresentException e){ e、 printStackTrace(); } }
    所选择的答案对我来说很有用,但似乎FirefoxDriver(org.openqa.selenium.Capabilities)已被弃用。工作备选方案是:

    FirefoxOptions firefoxOptions = new FirefoxOptions();
    firefoxOptions.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
    driver = new FirefoxDriver(firefoxOptions);
    

    警报是预期的,这就是我正在测试的。我希望警报显示并保留。请分享更多测试脚本,以及您希望警报显示的位置?
    FirefoxOptions firefoxOptions = new FirefoxOptions();
    firefoxOptions.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
    driver = new FirefoxDriver(firefoxOptions);