Ruby on rails 使用webrat选择页面元素
有一个产品列表(html表)。每行都有产品名称,并以“添加到购物车”按钮结尾。如何在webrat的购物车中添加2个“咖啡”和3个“茶” 对应的html: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
<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()) + '&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()) + '&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选择器。