我想选择以下元素:
<tr class="tr_even" id="13-hey-guys">
我想通过它的id来选择它,它是动态生成的对象id及其名称的串联。
当我使用此行捕获它时:
within('tr id=\"#{item.id}-#{item.name.downcase}\"') do
...
我收到以下错误:
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"]>]>]'
如何捕捉元素
答案 0 :(得分:1)
默认情况下,Capybara
使用CSS查找元素。
我认为找到该元素的正确方法应该是:
within("tr##{item.id}-#{item.name.downcase}") do
...
我希望这会有所帮助。
答案 1 :(得分:0)
以下情况如何?
within("tr[@id=\"#{item.id}-#{item.name.downcase}\"]")
我没有在内部使用,但这通常可以指定find
中的元素。
顺便提一下,当您想使用#{some_variable}
时,必须使用双引号。