2010-08-26 21 views
3

Je ne suis pas sûr de trouver cette information, j'ai trouvé quelques tutoriels sur l'utilisation de Python avec du sélénium mais aucun d'entre eux n'a touché à cela. Je suis capable d'exécuter des scripts de test de base via Python. sélénium mais il montre juste la fenêtre du navigateur pendant quelques secondes puis la ferme .. Je dois obtenir la sortie du navigateur dans une chaîne/variable (idéalement) ou au moins l'enregistrer dans un fichier pour que python puisse y faire autre chose (analyser, etc) .. Je serais reconnaissant si quelqu'un peut me diriger vers des ressources sur la façon de le faire. MerciSelenium avec Python, comment puis-je obtenir la sortie de la page après l'exécution d'un script?

+1

Après un peu plus de recherche je commence à rassembler une façon de le faire en utilisant des profils de Firefox, où vous devez créer un profil firefox et alors sélénium commencer sous cela et vous pouvez utiliser un plugin firefox qui sauvegarde automatiquement toutes les pages dans un répertoire spécifié, je vais poster un petit tutoriel ici pour référence une fois que je finirai car l'information sur ce sujet semble plutôt clairsemée – Rick

+0

ret = sel.get_string ("getBodyText", []) – Rick

Répondre

2

Il y a une méthode Selenium.getHtmlSource() en Java il est également disponible en Python. Elle retourne la source de la page en cours sous forme de chaîne, de sorte que vous pouvez faire tout ce que vous voulez avec

+0

Oui, j'ai trouvé cette information sur les docs de sélénium rc python, j'avais oublié de regarder là-bas comme j'avais regardé une autre API de sélénium qui je suppose était obsolète ou quelque chose Comme il ne semble pas y avoir de méthode pour cela, mais la réponse à cette question est simplement de regarder dans le docs rc selenium sous la langue =), c'est une commande comme ceci: ret = sel.get_string ("getBodyText" , []) – Rick

2

Ok, alors voici comment je fini par le faire, pour ceux qui ont besoin à l'avenir ..

Vous devez utiliser Firefox pour que cela fonctionne. 112 créer un nouveau profil firefox (pas nécessaire mais idéal pour séparer cela de l'utilisation normale de firefox), il y a beaucoup d'informations sur comment faire cela sur google, cela dépend de votre OS comment vous faites cela

2) obtenir le plugin firefox: https://addons.mozilla.org/en-US/firefox/addon/2704/ (cela enregistre automatiquement toutes les pages pour un nom de domaine donné), vous devez le configurer pour enregistrer les domaines que vous souhaitez enregistrer automatiquement.

3) puis juste démarrer le serveur de sélénium pour utiliser le profil créé (ci-dessous est un exemple pour linux)

cd /root/Downloads/selenium-remote-control-1.0.3/selenium-server-1.0.3 
java -jar selenium-server.jar -firefoxProfileTemplate /path_to_your_firefox_profile/ 

Thats it, il va maintenant enregistrer toutes les pages pour un nom de domaine donné chaque fois que le sélénium les visite, le sélénium crée aussi un tas de pages de déchets aussi vous pouvez simplement les supprimer via une analyse syntaxique simple et à vous, à partir de là comment manipuler les pages sauvegardées

3

utilisant Sélénium WebDriver et Python, vous simplement accéder à la propriété .page_source pour obtenir la source de la page en cours.

par exemple, en utilisant le pilote Firefox():

from selenium import webdriver 


driver = webdriver.Firefox() 
driver.get('http://www.example.com/') 

print(driver.page_source) 

driver.quit()