0

我想选择以下元素:

<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"]>]>]'

如何捕捉我的元素

4

2 回答 2

1

默认情况下,Capybara使用 CSS 查找元素。

我认为找到该元素的正确方法应该是:

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

我希望这有帮助。

于 2013-07-18T02:12:36.703 回答
0

下面的呢?

    within("tr[@id=\"#{item.id}-#{item.name.downcase}\"]")

我没有在其中使用,但这是find通常可以指定元素的方式。

顺便注意,当你想使用#{some_variable}.

于 2013-07-18T19:33:22.543 回答