一尘不染

selenium测试-Firefox警报立即消失

selenium

我正在Firefox上编写有关警报的Selenium测试。运行测试时,警报会出现一秒钟的时间,但是手动完成后,警报仍然存在。谁能说出为什么这样吗?

我尝试在Firefox上设置此配置文件,但这无济于事:

profile.setPreference("alerts.disableSlidingEffect", true);

谁能告诉我如何使警报停留在页面上?

在代码中,我正在检查警报的存在,因为警报消失得太快了,它似乎永远不会被击中:

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

阅读 278

收藏
2020-06-26

共1个答案

一尘不染

共有3种状态UnexpectedAlertBehaviour

  1. ACCEPT -接受警报
  2. DISMISS -关闭/取消警报
  3. IGNORE -既不接受也不关闭警报

    DesiredCapabilities dc =新的DesiredCapabilities();
    dc.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR,UnexpectedAlertBehaviour.IGNORE);
    driver =新的FirefoxDriver(dc);

然后,您可以通过执行触发警报并将其捕获为预期异常的操作来处理警报:

尝试{
    click(myButton);
} catch(UnhandledAlertException f){
    尝试{
        警报警报= driver.switchTo()。alert();
        字符串alertText = alert.getText();
        System.out.println(“警告数据:” + alertText);
        alert.accept();
    } catch(NoAlertPresentException e){
        e.printStackTrace();
    }
}
2020-06-26