web-dev-qa-db-fra.com

Sélénium installer Marionette webdriver

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

12
Arti

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
9
Mobrockers

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.

5
Raymond Yee

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
0
dsalaj