2009-09-25 1 views
0

Существует список продуктов (таблица html). Каждая строка имеет название продукта и заканчивается кнопкой «добавить в корзину». Как добавить 2 «кофе» и 3 «чай» в корзину от webrat?выбор элементов страницы с 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> 
+0

Можете ли вы предоставить более подробную информацию? Возможно, HTML будет полезен. – nicholaides

+0

Я думал, что ответ может быть html агностиком. Но теперь я думаю, что ты прав. – artemave

ответ

0

Оставить Добавить в корзину кнопки иды как 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" 
+0

Изменение кода приложения для тестирования на работу является большим. NONO – artemave

+0

. На самом деле я ожидал, что кто-то покажет, как использовать Nokogiri в Webrat, так как первый приносит селектора xpath. – artemave

0

Я считаю, что добавление идентификатора к ссылке в действительности семантическая разметка, хорошая практика. Если вы не хотите его использовать, я думаю, вы можете использовать position() предикат (см. http://www.w3.org/TR/xpath/)