2011-01-26 31 views

回答

1

document.activeElement给它,但该属性只是在现代浏览器。

1

没有建立方法来告诉你什么是焦点。

我知道的唯一途径,我使用的方法如下。我在包含所有文本元素的基础小部件上附加焦点和模糊事件,并跟踪它自己。

0

,最好的方法来测试是否一个元素具有焦点与jQuery使用。就是(“:聚焦”)命令或选择使用$具有焦点的元件(“:聚焦”)。然而,对于Capybara来说,这是不可能的,因为Capybara Webkit或Selenium总是会告诉你,所有元素都没有焦点,因为浏览器本身在测试时并不关注操作系统。

我已经然而找到了解决这个问题,并开发一个简单的脚本运行测试时来解决这个问题。问题出在你的浏览器的本地匹配和查询选择器是操作系统感知的,这意味着除非你的浏览器和网页标签在操作系统中有焦点,否则:焦点选择器将不匹配文档中的任何项目。我在JQuery内部探讨了解决这个问题的方法,这可以通过简单地强制JQuery使用Sizzle而不是使用浏览器的本地函数优化选择器查询来完成。

如果包含下面的脚本https://gist.github.com/1166821之前,包括JQuery的,那么你的Selenium测试将通过:重点测试。

对于这个问题,解决方案以及如何完整的写了运行测试,请查看http://blog.mattheworiordan.com/post/9308775285/testing-focus-with-jquery-and-selenium-or

希望帮助其他人谁具有同样的问题。