【问题标题】:Selenium IDE focus event doesn't fire unless window is active除非窗口处于活动状态,否则 Selenium IDE 焦点事件不会触发
【发布时间】:2010-12-04 00:13:35
【问题描述】:

我将此代码添加到我的网页:

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

除非浏览器窗口处于活动状态,否则焦点事件似乎不会从 Selenium 触发(使用“焦点”命令):

# [info] Executing: |waitForElementPresent | argh | |
# [info] Executing: |focus | argh | |
# [info] Executing: |verifyValue | argh | 7 |
# [error] Actual value '' did not match '7'

如果在测试期间显示窗口,它就成功了。此外,如果我在上述失败后激活浏览器窗口,#argh 被聚焦并用 7 填充,然后我回到 Selenium 并重新运行该行,它成功了。 (可能很明显,但是...)

我做错了什么?如何在不显示浏览器的情况下测试 Selenium 中的 AJAX 下拉菜单之类的内容?

我的设置是 Win32 上的 Firefox 3.5.3 上的 Selenium IDE 1.0.2。

【问题讨论】:

    标签: firefox events winapi selenium


    【解决方案1】:

    如果你使用 fireEvent 命令有什么不同吗?

    fireEvent | argh | focus
    

    【讨论】:

      【解决方案2】:

      首先,使用 Selenium 时会触发焦点事件。但是,由于 Selenium 控制的浏览器通常在操作系统中没有焦点,因此在浏览器重新获得焦点之前,浏览器不会认为任何元素具有焦点。

      我一直在努力解决这个问题,所以想出了一个解决这个问题的办法。见http://blog.mattheworiordan.com/post/9308775285/testing-focus-with-jquery-and-selenium-or 以获得对问题的完整解释和解决方案。

      如果您无法阅读冗长的解释,只需在包含 JQuery 之前包含 https://gist.github.com/1166821,然后使用 $(':focus') 查找具有焦点的元素,或者 .is(':focus ') 检查元素是否有焦点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-14
        相关资源
        最近更新 更多