2012-10-12 2 views
0

Possible en double:
Load an external js file containing useful test functions in seleniumSelenium RC en Javascript Ajout d'un fichier js externe

Je dois faire des tests de performance pour un système utilisant Selenium RC et l'écriture des tests en Javascript donc la le reste de mon équipe peut les comprendre. Je dois pouvoir Sencha Ext bibliothèque pour accéder à certains contrôles sur la page, donc je dois être en mesure de définir la bibliothèque js externe. Dans mes tests pour le sélénium, je ne peux pas définir la bibliothèque en utilisant le moyen normal d'écrire une balise de script sur la page; le document est indéfini. Essayer également d'utiliser d'autres commandes de sélénium comme AddScript ne semble pas être beaucoup d'aide.

Existe-t-il un meilleur moyen d'inclure une bibliothèque js externe avec Selenium? J'ai la bibliothèque Open Source Sencha Ext localement, donc je peux le mettre n'importe où. Puis-je simplement charger la bibliothèque comme référence à partir de soda? J'ai vu quelqu'un modifier le fichier Jar RC autonome de Selenium mais c'est un moyen de le comprendre. Je suis un peu perdu ici où aller d'ici.

Merci,

Répondre

0

Eh bien, du point de vue que js peut être exécuté à partir test de sélénium ainsi:

WebDriver driver; 
// create driver, i.e. driver = new FirefoxDriver(); 
JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("alert('Hello from Selenium!');"); 

Donc en fait, nous avons besoin d'inclure js lib via l'API de sélénium. À mon humble avis votre solution être comme:

WebDriver driver; 
    // create driver, i.e. driver = new FirefoxDriver(); 
    JavascriptExecutor js = (JavascriptExecutor) driver; 

//Load an external js file containing useful test functions in selenium 
js.executeScript("var doc = this.browserbot.getCurrentWindow().document; var scriptTag = doc.createElement("script"); scriptTag.type = "text/javascript" scriptTag.src = 'your_script_URL_goes_here'; doc.body.appendChild(scriptTag)"); 

de cette façon, nous avons inclus nécessaire js lib. De la même manière, vous pouvez appeler des fonctions contenant dans ce js lib externe.

This Ce message pourrait être utile pour vous. Également enquêter sur this question. Cordialement.

+0

Merci, mais je suis à la recherche d'une solution javascrpt seulement; pas de JAVA. Le premier lien que je vois est JAVA tandis que l'autre est hors de l'IDE sélénium, je n'utilise ni l'un ni l'autre. J'utilise le sélénium RC de la ligne de commande pour les tests écrits en javascript "seulement" avec soda comme intermédiaire. – tree

+0

J'ai essayé d'ajouter du Sencha Ext en tant qu'extension au pot RC au sélénium, mais cela ne semble pas fonctionner. Mettre à jour RemoteRunner.html, TestRunner.html et l'ajouter à user-extensions.js ne semble pas définir mes scripts. J'essaye d'ajouter d'abord les manuscrits dans le mode normal de js à la page eithe en ajoutant par programme un tag de manuscrit comme dans le user-extension.js ou dans les dossiers de HTML. Mais alors je pense que j'ai aussi besoin de définir un objet Ext qui est utilisé pour cibler les méthodes Sencha, comme $ ou jquery dans jquery. – tree

+0

Je suis en train d'ignorer cela pour l'instant car je peux gérer avec la méthode runscript pendant un moment. – tree