2009-09-25 7 views
0

Il existe une liste de produits (tableau html). Chaque rangée a le nom du produit et se termine par le bouton 'ajouter au panier'. Comment ajouter 2 'café' et 3 'thé' dans le panier du webrat?sélection d'éléments de page avec webrat

html correspondant:

<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

Pouvez-vous fournir plus de détails? Peut-être que le HTML serait utile. – nicholaides

+0

Je pensais que la réponse pourrait être html agnostique. Mais maintenant je pense que tu as raison. – artemave

Répondre

0

Donnez votre boutons Ajouter au panier ids comme id="add_item_6" vous pouvez utiliser Webrat cliquer sur le bouton que vous voulez.

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

Ensuite, votre étape serait

When I press Add to cart for "coffee" 
+0

Changer le code de l'application pour que les tests fonctionnent est un gros NONO – artemave

+0

Ce à quoi je m'attendais, c'est que quelqu'un montre comment utiliser Nokogiri dans Webrat, puisque le premier apporte des sélecteurs xpath. – artemave

0

Je dirais que l'ajout de l'identifiant du lien est en fait un balisage sémantique, une bonne pratique. Si vous ne voulez pas l'utiliser, cependant, je pense que vous pouvez utiliser le position() prédicat (voir http://www.w3.org/TR/xpath/)

Questions connexes