gpt4 book ai didi

ruby-on-rails-3 - 使用 Capybara 测试焦点

转载 作者:行者123 更新时间:2023-12-03 15:19:33 25 4
gpt4 key购买 nike

我有一个简单的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 不支持驱动程序,我使用它来避免每次测试运行都打开浏览器。

最佳答案

使用 Selenium 驱动程序,您可以获得焦点元素:

page.driver.browser.switch_to.active_element

然后你可以用它做你喜欢的事
page.driver.browser.switch_to.active_element.send_keys "some text"

请注意,它返回 Selenium::WebDriver::Elementfind返回 Capybara::Node::Element所以比较它们时要小心
expect(page.driver.browser.switch_to.active_element).to eql(find('#some-element').native)

关于ruby-on-rails-3 - 使用 Capybara 测试焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7940525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com