J'essaie de suivre un tutoriel sur Selenium, http://Selenium-python.readthedocs.io/getting-started.html . J'ai téléchargé la dernière version de geckodriver
et l'ai copiée dans /usr/local/bin
. Cependant, quand j'essaie
from Selenium import webdriver
driver = webdriver.Firefox()
Je reçois le message d'erreur suivant:
Traceback (most recent call last):
File "/Users/kurtpeek/Documents/Scratch/Selenium_getting_started.py", line 4, in <module>
driver = webdriver.Firefox()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Selenium/webdriver/firefox/webdriver.py", line 152, in __init__
keep_alive=True)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Selenium/webdriver/remote/webdriver.py", line 98, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Selenium/webdriver/remote/webdriver.py", line 188, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Selenium/webdriver/remote/webdriver.py", line 252, in execute
self.error_handler.check_response(response)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
Selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities
[Finished in 1.2s with exit code 1]
D'après https://github.com/SeleniumHQ/Selenium/issues/3884 , il semble que d'autres utilisateurs rencontrent des problèmes similaires, mais l'équipe de Selenium n'est pas en mesure de le reproduire. Comment puis-je faire fonctionner Selenium avec Firefox? (Cela fonctionne avec chromedriver
et une instance webdriver.Chrome()
, alors je suppose que cela pourrait être un bogue dans Selenium).
La mise à jour de Firefox et de Selenium a résolu le problème pour moi. Je ne veux pas avoir une explication pour la cause fondamentale cependant.
J'ai également réinstallé/mis à jour Geckodriver sous Homebrew et je l'ai utilisé explicitement comme exécutable pour Selenium WebDriver, mais il s'est avéré qu'il n'était pas nécessaire d'atténuer le "Impossible de trouver l'ensemble de capacités correspondant" error.
Notez également que vous avez la bonne version 32/64bit pour votre geckodriver.
pour moi, il suffisait de simplement mettre à niveau FF
Utilisateur Mac ici.
J'ai résolu ce problème en m'assurant que Firefox s'appelle "Firefox" et qu'il se trouve dans le dossier "Applications". Je l'avais appelé "Firefox 58" auparavant (j'ai plusieurs versions).
Vous avez la même erreur sur un droplet chez DigitalOcean - FireFox n'était pas installé. La trace d'erreur de pile était comme on le voit ci-dessous -
exception_class
<class 'Selenium.common.exceptions.SessionNotCreatedException'>
json
<module 'json' from '/usr/lib/python3.5/json/__init__.py'>
message
'Unable to find a matching set of capabilities'
response
{'status': 500,
'value': '{"value":{"error":"session not created","message":"Unable to find a '
'matching set of capabilities","stacktrace":""}}'}
screen
None
self
<Selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f428e3f10f0>
stacktrace
None
status
'session not created'
value
{'error': 'session not created',
'message': 'Unable to find a matching set of capabilities',
'stacktrace': ''}
value_json
('{"value":{"error":"session not created","message":"Unable to find a matching '
'set of capabilities","stacktrace":""}}')