Selenium IDE 的焦点事件只有在窗口处于活动状态时才会触发

3

我在我的网页中添加了以下代码:

<input id='argh' type='text' onfocus='this.value=7'>

除非浏览器窗口处于活动状态,否则使用Selenium的“focus”命令似乎无法触发焦点事件。
# [info] Executing: |waitForElementPresent | argh | |
# [info] Executing: |focus | argh | |
# [info] Executing: |verifyValue | argh | 7 |
# [error] Actual value '' did not match '7'

如果窗口在测试期间显示,则可以成功。此外,如果我在上述失败后激活浏览器窗口,#argh会聚焦,并填写七个数字,然后我返回Selenium并重新运行该行,则会成功。 我做错了什么?如何在不显示浏览器的情况下从Selenium测试诸如AJAX下拉菜单之类的东西? 我的设置是在win32上的Firefox 3.5.3上的Selenium IDE 1.0.2。
2个回答

4

使用fireEvent命令会有什么不同吗?

fireEvent | argh | focus

1
首先,使用Selenium时焦点事件确实会触发。但是,由于Selenium控制的浏览器通常不在操作系统中具有焦点,因此除非浏览器重新获得焦点,否则浏览器不会认为任何元素具有焦点。
我曾经因为这个问题而困扰了很久,所以想出了一个解决方案。详细了解问题及其解决方案,请参见http://blog.mattheworiordan.com/post/9308775285/testing-focus-with-jquery-and-selenium-or
如果您懒得阅读冗长的说明,请在引用JQuery之前包含https://gist.github.com/1166821,并使用$(':focus')查找具有焦点的元素,或使用.is(':focus')检查元素是否具有焦点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接