嗨,我目前正在测试,看是否有特定的字段具有焦点在页面加载时。 我找不到如何做到这一点。 基本上我想要做的是检查页面中的特定元素是否有焦点。 有没有内置的方法来检查这个?UI测试{水豚+黄瓜:如何检查是否一个特定的文本框中有一个焦点
谢谢。
嗨,我目前正在测试,看是否有特定的字段具有焦点在页面加载时。 我找不到如何做到这一点。 基本上我想要做的是检查页面中的特定元素是否有焦点。 有没有内置的方法来检查这个?UI测试{水豚+黄瓜:如何检查是否一个特定的文本框中有一个焦点
谢谢。
的document.activeElement
给它,但该属性只是在现代浏览器。
没有建立方法来告诉你什么是焦点。
我知道的唯一途径,我使用的方法如下。我在包含所有文本元素的基础小部件上附加焦点和模糊事件,并跟踪它自己。
,最好的方法来测试是否一个元素具有焦点与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
希望帮助其他人谁具有同样的问题。