我目前正在使用最新版本的Selenium及其.net绑定来执行一些测试。 不幸的是,我必须模拟在可变时间发生的一些反应,并且只能在非常有限的时间间隔内执行,并且连续轮询DOM的速度不够快。 有没有办法让Selenium挂钩到DOM事件,以便我可以拦截我感兴趣的事件在我的代码中? 如果是这样,将非常感谢示例.net代码。
提前致谢
P.S。:我对浏览器基本无动于衷,但是在Chrome中运行的解决方案会更受欢迎
答案 0 :(得分:2)
你唯一的希望是用JavaScript做到这一点。您可以使用ISelenium.GetEval()
或ISelenium.RunScript()
运行任意JavaScript代码。 GetEval()
将同步执行代码并返回块中最后一个表达式的值。 RunScript()
实际上将使用您的代码在DOM中构造一个新的<SCRIPT>
元素,这将导致浏览器异步运行它,等待JavaScript引擎空闲(即,至少在RunScript()
命令完成之后。
您可能希望使用RunScript()
挂钩所需的事件,然后让测试脚本等到事件有足够的时间触发,然后您可以使用GetEval()
来检索或验证事件处理程序的结果。
答案 1 :(得分:1)
如何在这里实现Webdriver Selenium的事件监听器:http://blog.simon-reekie.me/2011/05/21/logging-selenium-2-events-in-twist/