我的视图模板中有一个简单的link_to_function
<%= link_to_function "add new category","$('#category_name').focus()" %>
我想用capybara使用请求规范来测试.基本上这个规范应该是这样的
it "focuses category form when I click 'add new category'" do visit new_article_path click_link "add new category" # unfortunately there's nothing like 'has_focus?' find_field("category_name").should have_focus end
问题是,我无法找到任何东西,这将检查元素是否具有焦点.
我唯一找到的是这个
page.evaluate_script('document.focus')[:id]
然而,我不支持capybara-wekbit驱动程序,我使用它来避免每次测试运行打开浏览器.
解决方法
我只是使用以下代码(使用phantomjs驱动程序,但我相信它也适用于webkit):
page.evaluate_script("document.activeElement.id") == "some_id"
附:一年的问题没有答案.他们应该给我一个徽章吗?