À l'aide de sélénium web de pilote pour lancer le test sur plusieurs navigateurs
Je suis en train d'exécuter un même tester sur plusieurs navigateurs à travers pour la boucle, mais il toujours s'exécuter uniquement sur Firefox.
bros = ['FIREFOX','CHROME','INTERNET EXPLORER']
for bro in bros:
print "Running "+bro+"\n"
browser = webdriver.Remote(
command_executor='http://10.236.194.218:4444/wd/hub',
desired_capabilities={'browserName': bro,
'javascriptEnabled': True})
browser.implicitly_wait(60000)
browser.get("http://10.236.194.156")
Une observation intéressante; quand je inclure le paramètre platform: WINDOWS
il fonctionne uniquement sur Internet Explorer.
Ne Selenium Webdriver fonctionne de cette façon ou ma compréhension est erronée?
OriginalL'auteur Prakash | 2012-02-26
Vous devez vous connecter pour publier un commentaire.
En fait, j'ai fait en java, le suivant fonctionne bien pour moi:
Vous aurez besoin d'adapter ce bien sûr, si vous écrivez vos tests dans une autre langue, je sais que c'est possible en Java, ce n'est pas sûr du contraire.
Aussi, je suis d'accord avec ce que vous êtes en train de faire, je pense que c'est beaucoup mieux d'avoir une classe qui exécute les mêmes tests avec les différents navigateurs, au lieu de la duplication de code plusieurs fois et être inélégant. Si vous faites cela en Java/autres codes, aussi je vous suggère fortement d'utiliser un L'Objet De Page.
Bonne chance!
hey, avez-vous essayé de lancer plusieurs instances d'un même navigateur? Je suis en train d'essayer avec chrome, mais c'est un échec, mais mon constructeur commence avec de nouveaux ChromeDriver(). pensez-vous, est-il un moyen de faire cela?
OriginalL'auteur Boccobrock
Donc si je vous suis, à droite, vous avez un cas de test et que vous voulez ce pour les essais sur les différents navigateurs.
Je ne pense pas qu'une boucle est une bonne idée même si c'est possible (je ne sais pas atm).
L'idée est d'être en mesure de tester tous les cas de test autonome sur la course avec un navigateur spécifique (c'est la JUnit philosophie), de ne pas courir tous, afin d'en arriver à ce navigateur spécifique .
Donc, vous avez besoin pour créer un WebDriver avec le navigateur et les cas de test.
Je vous suggère de séparer les cas de tests par la création d'un cas de test-fichier de classe pour chaque navigateur.
Comme: FirefoxTestOne.java, IeTestOne.java, ChromeTestOne.java .
Notez que vous pouvez ajouter plusieurs firefox tests dans le FirefoxTestOne sans problèmes. Theres aucune garantie qu'ils vont être exécutés dans un ordre particulier par le biais de (JUnit philosophie).
Pour les liens et tutoriels demander à google. Il y a déjà looooots des exemples écrits.
OriginalL'auteur ctekk
Vous devrez générer plusieurs classes de test (ou webdriver cas) avec les élus des navigateurs.
Un Webdriver est défini avec un navigateur.
browser.get()
j'aibrowser.close()
fonction. C'est pourquoi, lorsque la boucle for commence itération suivante, il doit créer un nouvel objet de pilote à pilote spécifique à la nouvelle bro variable.OriginalL'auteur ctekk
Comme Coretek dit, vous avez besoin de plusieurs webdriver instances. Vous devez exécuter le sélénium, le serveur .fichier jar et de fournir à chacun un argument en précisant le navigateur que vous souhaitez que l'instance du serveur à exécuter.
L'argument pour Internet Explorer est *iexplore, l'argument en faveur de firefox est *firefox et l'argument pour chrome est *chrome. Ces sont -forcedBrowserMode arguments. Sinon, le sélénium ne sais pas ce qu'il devrait être en cours d'exécution contre. Vous devrez peut-être utiliser *iexploreProxy pour vos tests, parfois, il fonctionne mieux que l' *iexplore mode.
Consultez ce lien pour plus d'arguments qui peuvent être utiles:
http://seleniumforum.forumotion.net/t89-selenium-server-command-options-while-starting-server
Il travaille toujours avec Webdriver que de 2,6 (je n'ai pas mis à jour en temps)
Si vous exécutez selinium comme un hôte et un nœud vous pouvez fournir un fichier de configuration pour tous les navigateurs que vous voulez (ou pouvez tenir sur la même machine)
OriginalL'auteur TheDawg
De cette façon (ci-joint l'url) a travaillé pour moi.
http://blog.varunin.com/2011/07/running-selenium-tests-on-different.html
Le point suivant est différente de l'exemple.
OriginalL'auteur meg
Vous pouvez utiliser TestNG pour cette
combinaison de sélénium + testng vous donne une pâte résultat, pour ce
juste en ajoutant des paramètres d'attribut que vous pouvez faire ce
OriginalL'auteur Niyati