硒对事件做出反应

时间:2011-11-08 12:02:53

标签: .net testing dom selenium

我目前正在使用最新版本的Selenium及其.net绑定来执行一些测试。 不幸的是,我必须模拟在可变时间发生的一些反应,并且只能在非常有限的时间间隔内执行,并且连续轮询DOM的速度不够快。 有没有办法让Selenium挂钩到DOM事件,以便我可以拦截我感兴趣的事件在我的代码中? 如果是这样,将非常感谢示例.net代码。

提前致谢

P.S。:我对浏览器基本无动于衷,但是在Chrome中运行的解决方案会更受欢迎

2 个答案:

答案 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/