我想知道是否有一种使用Webdriverjs在if语句中处理警报的好方法。我尝试了一些我在这里和其他网站上找到的不同方法但没有成功。然而,我对Javascript和Node.js来说是非常新的,所以它可能是我的实现。
具体来说,我正在几乎相同的页面上为许多不同的客户端进行自动化测试。但是,只有某些客户端在按下特定按钮时会发出警报。所以我想通过if语句处理这个问题,检测是否存在警报并继续进行,否则继续。
我之前读过一篇详细说明Java中类似问题的文章,并且响应者指出,在自动化测试中,您应该始终了解网站的行为方式,并且可能应该完全不同地处理这个问题。我能想到的最简单但最不可取的方法是简单地编写两个不同的测试,我可以做。
对此代码的任何建议以及对此问题的输入都会非常受欢迎。
提前致谢!
答案 0 :(得分:1)
如果您尝试访问存在警报的页面元素,Selenium会抛出UnhandledAlertException: Modal dialog present
异常。由于您似乎知道哪个按钮会导致警报,因此您应该知道在哪里尝试/捕获此异常并进行适当处理。
然后,您可以使用org.openqa.selenium.Alert
包来接受,关闭等弹出窗口。
http://toolsqa.com/selenium-webdriver/handling-of-alerts-javascript-alerts-and-popup-boxes/