J'ai ce problème avec Firefox version 47 https://github.com/seleniumhq/Selenium/issues/2110
J'ai donc essayé d'ajouter le pilote Web Marionette pour résoudre ce problème: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver
Mais:
from Selenium.webdriver.common.desired_capabilities import DesiredCapabilities
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/Users/myproject/geckodriver-0.8.0-OSX'
renvoie une erreur:
Selenium.common.exceptions.WebDriverException: Message: 'fils' l'exécutable doit être dans PATH.
Exception AttributeError: "L'objet 'Service' n'a pas d'attribut 'Process'" dans> ignoré
Sélénium == 2.53.5
la fonctionnalité binaire firefox que vous définissez pointe vers firefox binary, pas le binaire du pilote marionnette Vous devez ajouter /Users/myproject/geckodriver-0.8.0-OSX
à votre chemin comme suit:
Ouvrez un terminal et lancez cette commande
export PATH=$PATH:/Users/myproject/geckodriver-0.8.0-OSX
Je ai rencontré ce problème et peux confirmer que firefox_capabilities['binary']
doit pointer vers le binaire Firefox, et non vers GeckoDriver. L'exemple Python de la documentation de Mozilla WebDriver a été clarifié à ce sujet.
En plus des deux autres réponses, vous ne souhaiterez probablement pas modifier le système PATH
car vous en avez besoin uniquement lors de l'exécution des tests. Une façon d'avoir la bonne PATH
uniquement lorsque vous en avez besoin est de la définir dans le code:
os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/'
Une solution de contournement plus simple consisterait à déplacer le binaire geckodriver
dans le répertoire que vous avez déjà dans votre chemin:
mv geckodriver /usr/local/bin