嗨,我目前正在測試,看是否有特定的字段具有焦點在頁面加載時。 我找不到如何做到這一點。 基本上我想要做的是檢查頁面中的特定元素是否有焦點。 有沒有內置的方法來檢查這個?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
希望幫助其他人誰具有同樣的問題。