À l'aide de sélénium waitForCondition avec un xpath
Le sélénium a quelques belles soutien pour la recherche d'éléments dans une page via xpath
selenium.isElementPresent("//textarea")
et en ajax pages que vous pouvez utiliser waitForCondition attendre sur une page jusqu'à ce que quelque chose apparaît,
selenium.waitForCondition("some_javascript_boolean_test_as_a_string", "5000")
Mon problème est que je n'arrive pas à obtenir en mesure de les utiliser à la charge de xpath pour la boolean test. document.getElementById semble bien fonctionner, mais sélénium.isElementPresent ne le fait pas.
Est-il un moyen facile d'accéder aux sélénium xpath de l'élément à trouver les capacités de l'intérieur waitForCondition du premier paramètre?
- Comment êtes-vous l'exécution de ce script? Tu fais ça à partir de Selenium IDE, ou de les exporter vers un autre langage (C#, Java, etc..)
- À partir de Java - j'avais supposé qu'il n'a pas d'importance que tout cela est descendu à la même JavaScript
Vous devez vous connecter pour publier un commentaire.
Plus simple façon de le faire est:
Vous pourriez faire quelque chose comme ceci:
La waitForCondition n'évalue que la dernière js résultat de l'expression comme une valeur booléenne, ce qui vous permet d'écrire des tests complexes (comme illustré ici). Par exemple, nous avons aussi recours à cette technique pour tester si jQuery AJAX a fini de s'exécuter.
Le seul inconvénient est que vous êtes aussi maintenant en s'appuyant sur la browserbot et le niveau inférieur de base API js.
Si vous souhaitez sélectionner un élément par son id, la chose la plus simple est d'utiliser directement selenese:
Si vous insistez sur l'utilisation de xpath, vous pouvez utiliser
ou
(L'id de fonction peut ne pas être compatible avec tous les navigateurs)
Si cela n'aide pas votre document html peut aussi avoir des problèmes structurels qui provoque cela se produise. Exécuter un validateur html comme html validator de vérifier pour la nidification des problèmes similaires et sur votre page.