2009-05-12 13 views
1

Existe-t-il un moyen pour le code js de forcer l'échec du test au sélénium? Pour (probablement un mauvais) exemple, si j'avais les suivantes:avoir javascript forcer un test Selenium à échouer

return document.getElementById('foo').innerHTML == 'hello' 

est-il un moyen que je pourrais faire la commande « runScript » échec selon que le code js retourné vrai ou faux? (Je sais que cet exemple pourrait être utilisé par d'autres commandes Selenium, mais je voulais une solution plus générale.)

Dois-je apprendre à étendre Selenium pour ajouter une autre commande?

Je suis également relativement nouveau à Selenium alors est-ce quelque chose que l'utilisation de Selenium-rc va résoudre?

Répondre

3

assertExpression vous donnera ce que vous demandez. Par exemple, la ligne suivante provoquerait l'échec de votre test si l'expression JavaScript que vous avez mentionnée n'évaluait pas true.

<tr> 
<td>assertExpression</td> 
<td>javascript{this.browserbot.getCurrentWindow().document.getElementById('foo').innerHTML == 'hello'}</td> 
<td>true</td> 
</tr> 
0

Cela dépend de la façon dont vous voulez utiliser le sélénium. Dans la suite selenese il y a des appels pour verifyText, etc (juste google pour la suite selenese et verifyText, waitForCondition). Si vous utilisez la télécommande au sélénium, par ex. Java que vous faites les assertions dans le code Java. Avec la télécommande, vous envoyez des scripts à la page et vous obtenez ce que l'évaluation du code retourne. Le comparsion/assertion est fait dans le client java.

+0

Avez-vous envisagé de voter si vous acceptez la réponse? :) –

0

eval ('asdfklj;'); // Selenium Hits it. Honnêtement, je ne l'ai jamais utilisé moi-même. Besoin de l'apprendre bientôt, mais je suppose qu'il peut bombarder faire des erreurs javascript.