我正在Firefox上编写有关警报的Selenium测试。运行测试时,警报会出现一秒钟的时间,但是手动完成后,警报仍然存在。谁能说出为什么这样吗?
我尝试在Firefox上设置此配置文件,但这无济于事:
profile.setPreference("alerts.disableSlidingEffect", true);
谁能告诉我如何使警报停留在页面上?
在代码中,我正在检查警报的存在,因为警报消失得太快了,它似乎永远不会被击中:
WebDriverWait wait = new WebDriverWait(webDriver, Long.parseLong(parameters[0])); wait.until(ExpectedConditions.alertIsPresent());
共有3种状态UnexpectedAlertBehaviour:
UnexpectedAlertBehaviour
ACCEPT
DISMISS
IGNORE -既不接受也不关闭警报
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(); } }