• Home
  • About
    • Pretend To Write Like A Hacker photo

      Pretend To Write Like A Hacker

      besteric

    • Learn More
    • Twitter
    • Instagram
    • Github
    • Weibo
  • Posts
    • All Posts
    • All Tags
  • Projects

Selenium处理弹出窗口

Reading time ~1 minute

原帖出自:http://fafeng.blogbus.com/logs/56326780.html

在51testing看到的链接,今天没什么精神觉得总结的不错,先转过来再说

对网页弹出窗口,如WIKI所述,若要保持脚本运行稳定,必须在waitForPopUp这个弹出窗口之后紧跟运行selectWindow命令选中这个弹出窗口(示例),如果仍不稳定请参考这个示例。这里介绍了chooseCancelOnNextConfirmation、chooseOkOnNextConfirmation等JavaScript脚本实现的弹出窗口处理函数,selenium并不会弹出窗口,因为它重写了window.open在文件selenium-browserbot.js函数BrowserBot.prototype.modifyWindowToRecordPopUpDialogs中的newOpen,但这必须在window.onload之后创建才有效。对于HTTPS安全性弹出窗口证书的处理,见Selenium RC。

对非网页弹出窗口,如window.alert,window.confirm,window.prompt,window. showModalDialog等,有如下方法:

1.封装Windows Api,对Java语言则有Java Native Interface (JNI)或者J/Invoke(示例)。

2.Selenium RC中开启proxy injection(PI)模式也可以识别,这种模式提供了一个HTTP代理在浏览器之前自动更改所有接收到的HTML。window.alert, window.confirm,window.prompt在文件selenium-browserbot.js函数BrowserBot.prototype.modifyWindowToRecordPopUpDialogs中被覆写。

3.这里用window.open覆写了window. showModalDialog,同样实现的还有在文件selenium-browserbot.js函数BrowserBot.prototype._modifyWindow实现开始部分添加对ModalDialog的实现。



Pop-upsSelenium弹出窗口 Like Tweet +1
打赏

打赏留言

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少
支付宝
微信

打开支付宝扫一扫,即可进行扫码打赏哦