您好我正在测试在页面加载时查看特定字段是否具有焦点。 我怎么都找不到如何做到这一点。 基本上我想要做的是检查页面中的特定元素是否具有焦点。 有没有内置的方法来检查这个?
感谢。
答案 0 :(得分:1)
没有内置方法可以告诉你什么是焦点。
我知道的唯一方法和我使用的方法如下。我在包含所有文本元素的基本窗口小部件上附加焦点和模糊事件,并跟踪它自己。
答案 1 :(得分:1)
document.activeElement
给出了它,但该属性仅在现代浏览器中可用。
答案 2 :(得分:0)
测试元素是否具有JQuery焦点的最佳方法是使用.is(':focus')命令或使用$(':focus')选择焦点元素。然而,对于Capybara而言,这是不可能的,因为Capybara Webkit或Selenium总是会告诉您所有元素都没有焦点,因为在测试时浏览器本身没有关注操作系统。
然而,我找到了解决此问题的方法,并开发了一个简单的脚本来在运行测试时解决此问题。问题在于浏览器的本机匹配和查询选择器是操作系统感知的,这意味着除非您的浏览器和网页选项卡在操作系统中具有焦点,否则:焦点选择器将不匹配文档中的任何项目。我在JQuery中找到了解决这个问题的方法,这可以通过简单地强制JQuery使用Sizzle而不是使用浏览器的本机函数优化选择器查询来完成。
如果包含以下脚本https://gist.github.com/1166821在包含JQuery之前,那么您的Selenium测试将通过:focus tests。
要完整地了解问题,解决方案以及如何运行测试,请查看http://blog.mattheworiordan.com/post/9308775285/testing-focus-with-jquery-and-selenium-or
希望能帮助那些有同样问题的人。