如何处理selenium中的onload javascript警报?
它没有被Selenium IDE捕获,也没有被getAlert()函数处理。
答案 0 :(得分:5)
即使我遇到同样的问题。在使用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");
这是不可取的,但帮助我处理了一些硒失败。
答案 1 :(得分:0)
无法做到。 As stated in Selenium documentation:
Selenium试图隐藏你的那些对话(通过替换 window.alert,window.confirm和window.prompt)所以他们不会停止 执行您的页面。如果你看到一个警告弹出窗口,那就是 可能是因为它在页面加载过程中被触发,这是 通常为时太早,我们无法保护页面。
这是Selenium RC的一个已知限制(因此也是Selenium IDE),也是Selenium 2(WebDriver)开发的原因之一。如果您想抓住onload
JS提醒,则需要to use WebDriver alert handling。
作为解决方法,您可以使用Robot
填写任何文本,然后按Enter键并盲目确认对话框。这不是最干净的方式,但它可以工作。但是,您将无法收到alert
消息。