2009-08-13 4 views
4

Est-il possible d'utiliser sélenium pour tester si un jQuery data() est défini sur un élément?Utilisation de sélénium pour tester les données de l'élément jQuery()?

Dans mon application, l'utilisateur saisit des informations sur plusieurs commandes. Chaque commande est ajoutée à un tableau de synthèse afin qu'ils puissent voir leur progression au fur et à mesure. En plus des informations de commande visible, nous enregistrons des informations supplémentaires que nous avons besoin sur chaque commande en utilisant un tableau stocké dans jquery.data(), comme ceci:

$('#table').data('orders').push(neworderdata) 

Je voudrais écrire un test de sélénium affirment que lorsque l'utilisateur appuie sur 'Ajouter une commande', mes données supplémentaires sont ajoutées à $ ('# table'). data ('commandes').

Je pense que je besoin de quelque chose comme:

Command: assertEval 
Target: $('#table').data('order')[1].cust_no 
Value: 99999 

Mais je pense que la question que je vais avoir est que Selenium IDE ne connaît pas l'espace de noms jQuery, et les fonctions, il ne sait pas comment pour trouver la table. Mais même si j'utilise getElementbyID ('table'), comment connaître le sélénium à propos de data()?

+0

Bien sûr, une autre façon d'y aller serait d'ajouter nos informations supplémentaires sur un champ caché dans chaque rangée de la table où le sélénium peut facilement le trouver. Mais ce n'est pas ce que nous avons. Merde que le code hérité =) – fitzgeraldsteele

Répondre

1

Etes-vous sûr que Selenium IDE rencontre un problème avec $? J'ai pu y accéder depuis Selenium IDE. Peut-être que quelque chose d'autre est brisé dans votre expression jQuery? Pouvez-vous d'abord essayer "assertEval $ 0" etc pour voir si l'EDI peut évaluer $ seul?

+0

Vous avez raison ... j'étais capable d'assertEval $, et il m'a redonné le texte de l'objet jQuery, donc il pourrait certainement «voir» jQuery ... Mais ça me fait plus curieux de savoir ce qui se passe. Pourquoi le sélénium ne peut-il pas évaluer cette expression? – fitzgeraldsteele

1

Je trouve que le sélénium ne voir la fonction jquery si vous accédez comme:

window.$(...) 

pas

$(...) 

Peut-être est (en partie) le problème?

Questions connexes