-->

选择页面元素与webrat(selecting page elements with webrat)

2019-10-28 20:51发布

还有就是产品的列表(HTML表格)。 每一行得到了产品名称和“添加到购物车”按钮结束。 如何添加2“咖啡”和3“茶”从webrat的车?

相应的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>

Answer 1:

给你添加到购物车按钮ID,如id="add_item_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"


Answer 2:

我认为,加入id来的链接,其实是语义标记,一个很好的做法。 如果你不想使用它,不过,我想你可以使用位置()谓词(见http://www.w3.org/TR/xpath/ )



文章来源: selecting page elements with webrat