Définir selenium pour utiliser le profil personnalisé, mais il garde l'ouverture par défaut
j'essaie d'utiliser python et sélénium pour automatiser certaines tâches dans firefox. Lorsque je télécharge un fichier, Ce pop up vient demander si vous voulez ouvrir ou enregistrer, et une case à cocher pour faire cela à chaque fois avec ce type de fichier. J'ai trouvé que la boîte à cocher ne fonctionne pas à moins que vous installez le Ajouter sur la page Web Fixer. Je l'ai installé normalement, mais lorsque j'utilise python + sélénium il utilise un profil sans add-ons.
l'internet m'a demandé de créer un autre profil par fermer Firefox, ouvrir / Applications/ Utilities, puis taper la commande:
/Applications/Firefox.app/Contents/MacOS/firefox-bin -p
je crée alors un nouveau profil que j'utiliserai avec le sélénium. Je mets le nom et je change le nom du dossier. Le nom du profil est"PTI_Auto_Profile". Le chemin du dossier s'affiche comme suit:
/users/User/Library/Application Support/Firefox/Profiles/Selenium/
quand j'aurai fini. Je clique sur "Démarrer Firefox", et l'erreur suivante apparaît sur mon écran de terminal.
2013-04-11 11:57:30.422 firefox-bin[2248:707] invalid drawable
conf-room:~ User$ 2013-04-11 11:58:00.350 firefox-bin[2251:303] invalid drawable
j'ai essayé ce qui suit à non succès.
profile = webdriver.FirefoxProfile(os.path.expanduser("~/Library/Application Support/Firefox/Profiles/Selenium/"))
driver = webdriver.Firefox(firefox_profile=profile)
pas d'erreur, utilisateur par défaut.
profile = webdriver.FirefoxProfile(os.path.expanduser("~/Library/Application Support/Firefox/Profiles/Selenium/"))
driver = webdriver.Firefox(profile)
pas d'erreur, utilisateur par défaut.
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir",getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv/xls")
driver = webdriver.Firefox(firefox_profile=fp)
Erreur: fp.set_preference ("browser.télécharger.dir", getcwd()) NameError: le nom 'getcwd' n'est pas défini
avez-vous une idée de ce que je fais de mal? Je vous remercie!
p. S. J'utilise mac os x 10.8.2, python 2.7, firefox 20
SOLUTION fournie par Corey Goldberg. cela devrait fonctionner pour toutes les versions excel.
import os
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', os.getcwd())
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', ('application/vnd.ms-excel'))
driver = webdriver.Firefox(profile)
3 réponses
erreur: fp.set_preference ("browser.télécharger.dir",getcwd ()) NameError: nom de "getcwd" n'est pas défini
getcwd()
n'est pas défini. Donc je suppose que vous voulez le getcwd
os
module:
ajouter: import os
puis d'appeler os.getcwd()
.
ou vous pouvez simplement ajouter l'importation pour cette fonction:
from os import getcwd
ton exemple avec le bon importations incluses:
import os
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', os.getcwd())
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv/xls')
driver = webdriver.Firefox(profile)
j'ai fait le code suivant:
Ou:
Linux:ls -d /home/$USER/.mozilla/firefox/*.default/
pour voir le profil de l'utilisateur répertoires
Mac:ls -d ~/Library/Application\ Support/Firefox/Profiles/*
Sortie:
/home/jmunsch/.mozilla/firefox/xfoyzfsb.default/
/home/jmunsch/.mozilla/firefox/yxjwk1py.default/
pour charger un profil d'utilisateur personnalisé, j'ai créé un profil dans firefox et j'ai ensuite fait ce qui suit avec le code Python selenium webdriver:
def setUp(self):
self.profile = webdriver.FirefoxProfile('/home/jmunsch/.mozilla/firefox/yxjwk1py.default')
self.driver = webdriver.Firefox(self.profile)
Info Système:
Python 2.7.3 (default, Sep 26 2013, 20:08:41)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkg_resources;pkg_resources.get_distribution("selenium").version
jmunsch@NE-522:~/Desktop/work$ firefox --version
Mozilla Firefox 26.0
aussi remarque
la réponse de@Corey pour définir manuellement un profil
tous les configurables se trouvent sous about:config
:
profile.set_preference('browser.download.folderList', 2)
Vous devez ajouter ceci:
profile.set_preference("browser.helperApps.neverAsk.openFile",
"text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml")
Ça fonctionne!