2010-01-22 4 views
0

Je suis en train de faire glisser et déposer des tests js avec sélenium-client. Cela fonctionne (prendre des captures d'écran avant et après montrer clairement les éléments pour changer de place), mais j'ai du mal à affirmer par programme que le changement est arrivé.Assert css locator est égal à sa valeur attendue

Suis-je mentale, ou je ne peux pas faire quelque chose comme:

selenium.assert_equal("css locator", "expected id of element")

qui, dans ce cas, ressemblerait à quelque chose comme:

selenium.assert_equal("css=li:nth-child(1)", "li#list_item_2")

Des conseils sur la façon de mettre en œuvre ce serait génial.

Merci,

Adam

Edit: si j'avais selenium.get_element qui prendrait un sélecteur et retourner ce qu'elle était, je pourrais alors faire l'affirmation à l'étape suivante.

à-dire

element = selenium.get_element("css=li:nth-child(1)")

assert_equal(element, "li#list_item_2")

(je crois).

Répondre

3

Votre exemple ne fonctionnera pas car vous comparez deux chaînes qui ne sont pas égales. Une façon d'affirmer que votre élément est déplacé serait d'utiliser isElementPreset comme démontré ci-dessous:

//before drag and drop 
assertTrue(selenium.isElementPresent("css=#source li:nth-child(1)")); 
assertFalse(selenium.isElementPresent("css=#target li:nth-child(1)")); 

//drag and drop code here 
... 

//after drag and drop 
assertTrue(selenium.isElementPresent("css=#target li:nth-child(1)")); 
assertFalse(selenium.isElementPresent("css=#source li:nth-child(1)")); 

Cet exemple utilise l'API client Java, mais il devrait être facile de comprendre comment le faire dans votre API client préféré . Cela dépendra aussi fortement de votre application, puisque ce qui précède vérifiera que l'élément avec l'identifiant 'target' a un élément enfant li avant le glisser-déposer, et aucun après. Si vous avez un extrait de votre source HTML, je pourrais être en mesure de prouver un exemple plus robuste.

Questions connexes