2011-01-26 69 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

希望幫助其他人誰具有同樣的問題。