【问题标题】:Unable to select a field generated by link_to_add_fields with capybara无法使用水豚选择由 link_to_add_fields 生成的字段
【发布时间】:2016-12-08 00:49:19
【问题描述】:

我的视图模板中有以下元素:<%= link_to_add_fields "Add event", f, :events %>

这会打开一组字段,这些字段本身由simple_fields_for 生成。这些字段在我的本地服务器上运行的浏览器中正确显示,所以这不是问题。

但是,我不知道如何让水豚到fill_in 那些领域。 capybara 在从link_to_add_fields 中单击Add event 按钮时不会引发错误,但是当我尝试填写表格时会引发错误,说它是Unable to find field。有什么猜测吗?

【问题讨论】:

  • 您使用的是支持 JS 的驱动程序吗?显示您尝试用于填充的代码、您认为该代码应该填充的 html 以及您得到的确切错误 - stackoverflow.com/help/how-to-ask
  • @ThomasWalpole 抱歉,我应该结束这个问题。这也可能通过设置:js => true 来解决。但是,我无法验证这是否是问题所在,因为现在设置了 :js => true 我收到以下错误消息:Capybara::Webkit::InvalidResponseError: Unable to load URL: http://cms.eta.dev:5000/auth/identity because of error loading http://cms.eta.dev:5000/auth/identity: Unknown error 尽管实现了 DatabaseCleaner。在确定这是否仍然是一个问题之前,我必须先解决这个问题。
  • @ThomasWalpole 确认:我正在使用 capybara WebKit
  • 只有在设置了 js: true 时你才会使用 capybara-webkit - 否则你将使用 rack-test 根本不运行 JS 所以link_to_add_fields 运行的 JS 永远不会发生并且这些字段将不存在可以填写。所以,是的,一旦你让一个支持 JS 的驱动程序工作,它可能会被修复。

标签: ruby-on-rails-4 capybara simple-form rspec-rails


【解决方案1】:

我认为你应该在 link_to_add_fields 中使用 id 并在你的 capybara fill_in 中访问该 id。

<%= link_to_add_fields "Add event", f, :events, :id => 'something' %>

并使用 id

fill_in "something", with: 'example'

【讨论】:

  • 我还不能尝试这个解决方案(或任何解决方案),因为其他问题是测试甚至没有达到那个点。但请记住,link_to_add_fields 会为其创建的每组字段创建一个唯一的 ID 号。换句话说,每次你点击这个链接,它都会创建一个新的 ID。我必须想办法将这个唯一 ID 合并到 fill-in 命令中。
猜你喜欢
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-01
  • 1970-01-01
  • 2021-05-27
  • 1970-01-01
相关资源
最近更新 更多