Capybara 使用正则表达式匹配元素 id

2024-03-02

我正在使用Cocoon https://github.com/nathanvda/cocoongem 在 Rails 中构建嵌套表单。该 gem 为每个重复的表单元素分配一个随机数,以便区分它们。

例如:

id="challenge_events_attributes_1464333427019_event_time_3i"

其中“1464333427019”是一个随机数。

我尝试过各种迭代:

x = page.all(:xpath, '//input[contains("challenges_events_attributes")]')
puts "X: #{x.inspect}"

假设我在一个页面上有多个元素,我如何使用 Capybara (可能使用 xpath)定位这些元素,然后为它们分配值?


不需要使用 xpath,以选择器开头的 CSS 属性就可以很好地工作

page.all('input[id^="challenges_events_attributes_"]').each do |el|
  el.set('whatever value you want to set')
end

如果您也需要它匹配 id 的结尾,您可以将属性结尾与选择器结合起来page.all('input[id^="challenges_events_attributes_"][id$="_event_time_3i"]') etc.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Capybara 使用正则表达式匹配元素 id 的相关文章

随机推荐