Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用webrat选择页面元素_Ruby On Rails_Testing_Webrat - Fatal编程技术网

Ruby on rails 使用webrat选择页面元素

Ruby on rails 使用webrat选择页面元素,ruby-on-rails,testing,webrat,Ruby On Rails,Testing,Webrat,有一个产品列表(html表)。每行都有产品名称,并以“添加到购物车”按钮结尾。如何在webrat的购物车中添加2个“咖啡”和3个“茶” 对应的html: <tr class="odd"> <td><img src="/images/menu_items_images/7/PICT0020_thumb.jpg" /></td> <td>cofee</td> <td>america

有一个产品列表(html表)。每行都有产品名称,并以“添加到购物车”按钮结尾。如何在webrat的购物车中添加2个“咖啡”和3个“茶”

对应的html:

<tr class="odd">
      <td><img src="/images/menu_items_images/7/PICT0020_thumb.jpg" /></td>
      <td>cofee</td>
      <td>americano</td>
      <td>1.0</td>
      <td><form action="/cart/add_item/7" method="post" onsubmit="$.ajax({data:$.param($(this).serializeArray()) + '&amp;authenticity_token=' + encodeURIComponent('rDzsxOQSgwTT3rjUDROFGNz4hMs6BK0riGemVi+NHK4='), dataType:'script', type:'post', url:'/cart/add_item/7'}); return false;"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="rDzsxOQSgwTT3rjUDROFGNz4hMs6BK0riGemVi+NHK4=" /></div>            <input name="commit" type="submit" value="Add to cart" /></form></td>
</tr>
<tr class="even">
      <td><img src="/images/menu_items_images/6/PICT0053_thumb.JPG" /></td>
      <td>tea</td>
      <td>green</td>
      <td>2.0</td>
      <td><form action="/cart/add_item/6" method="post" onsubmit="$.ajax({data:$.param($(this).serializeArray()) + '&amp;authenticity_token=' + encodeURIComponent('rDzsxOQSgwTT3rjUDROFGNz4hMs6BK0riGemVi+NHK4='), dataType:'script', type:'post', url:'/cart/add_item/6'}); return false;"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="rDzsxOQSgwTT3rjUDROFGNz4hMs6BK0riGemVi+NHK4=" /></div>            <input name="commit" type="submit" value="Add to cart" /></form></td>
</tr>

咖啡
美式咖啡
1
茶
绿色
2

给你的添加到购物车按钮id,比如
id=“Add\u item\u 6”
,然后你可以使用webrat点击你想要的按钮

When /^I press Add to cart for "([^\"]*)"$/ do |item|
  id = Item.find_by_name(item).id
  click_button('add_item_' + id.to_s)
end
那你的步子就是

When I press Add to cart for "coffee"

我认为将id添加到链接实际上是语义标记,这是一种很好的做法。但是,如果您不想使用它,我认为您可以使用position()谓词(请参见)

您能提供更多详细信息吗?也许有HTML会有帮助。我认为答案可能是HTML不可知论。但现在我认为你是对的,我真正期待的是有人展示如何在Webrat中使用Nokogiri,因为前者带来了xpath选择器。