如何处理硒中的onload javascript警报?
它没有在 Selenium IDE 中被捕获,也没有被 getAlert() 函数处理。
甚至我也面临同样的问题。在使用 selenium 几个小时后,找到了处理 java 脚本警报和弹出窗口的解决方案。
我们可以使用 selenium 的 keyPressNative 来处理来自 selenium RC 的 java 脚本警报。
以下是该key*Native()
方法的使用方法:
selenium.keyPressNative("27"); // Escape
selenium.keyPressNative("10"); // Enter
selenium.keyDownNative("16"); // Press and do not relase the shift key, so that
selenium.keyPressNative("79"); // this character will be capitals
selenium.keyUpNative("16"); // Release the shift key, as we don't need it for the
selenium.keyPressNative("67");
It is not advisable but helped me in handling some of the selenium failures.
这是不可能的。如 Selenium 文档中所述:
Selenium 尝试向您隐藏这些对话框(通过替换 window.alert、window.confirm 和 window.prompt),这样它们就不会停止执行您的页面。如果您看到一个警报弹出窗口,可能是因为它在页面加载过程中触发了,这对于我们来说保护页面通常还为时过早。
这是 Selenium RC(因此也是 Selenium IDE)的一个已知限制,也是开发 Selenium 2 (WebDriver) 的原因之一。如果要捕获onload
JS 警报,则需要使用 WebDriver 警报处理。
作为一种解决方法,您可以使用Robot
填写任何文本并按 Enter 并盲目地确认对话框。这不是最干净的方法,但它可以工作。但是,您将无法收到该alert
消息。