Ruby on rails 在Capybara中,如何选择动态生成的元素

Ruby on rails 在Capybara中,如何选择动态生成的元素,ruby-on-rails,rspec,capybara,Ruby On Rails,Rspec,Capybara,我要选择以下元素: <tr class="tr_even" id="13-hey-guys"> 我得到以下错误: Failure/Error: within('tr id=\"#{item.id}-#{item.name.downcase}\"') do Nokogiri::CSS::SyntaxError: unexpected '=' after '[#<Nokogiri::CSS::Node:0x0000010835f210 @type=:DESCENDANT_

我要选择以下元素:

<tr class="tr_even" id="13-hey-guys">
我得到以下错误:

Failure/Error: within('tr id=\"#{item.id}-#{item.name.downcase}\"') do
 Nokogiri::CSS::SyntaxError:
   unexpected '=' after '[#<Nokogiri::CSS::Node:0x0000010835f210 @type=:DESCENDANT_SELECTOR, @value=[#<Nokogiri::CSS::Node:0x0000010835f4e0 @type=:ELEMENT_NAME, @value=["tr"]>, #<Nokogiri::CSS::Node:0x0000010835f2b0 @type=:ELEMENT_NAME, @value=["id"]>]>]'
失败/错误:在('tr id=\“{item.id}-{item.name.downcase}\”)内执行
Nokogiri::CSS::语法错误:
“[#]”之后出现意外的“=”

如何捕获元素默认情况下,
Capybara
使用CSS查找元素

我认为,找到这一要素的正确方法应该是:

within("tr##{item.id}-#{item.name.downcase}") do
  ...

我希望这能有所帮助。

以下内容如何

    within("tr[@id=\"#{item.id}-#{item.name.downcase}\"]")
我没有在中使用,但这就是通常可以指定
find
中元素的方式


顺便说一句,当你想使用不起作用的
{some#u variable}

时,你必须使用双引号,我得到了失败/错误:在('tr#{item.id}-{item.name.downcase})中,do Nokogiri::CSS::SyntaxError:在“[#]之后出现意外的“#”@EricBaldwin你试过
“tr#item.id}-{downcase}”吗
而不是
'tr##{item.id}-#{item.name.downcase}
?使用双引号会出现“找不到css…”错误。它仍然不起作用,但是语法错误消失了。谢谢
    within("tr[@id=\"#{item.id}-#{item.name.downcase}\"]")