web-dev-qa-db-fra.com

Selenium "Impossible de trouver un ensemble de capacités correspondant" bien que le pilote soit dans/usr/local/bin

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).

24
Kurt Peek

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.

  • Mise à jour de Firefox 48 → 53
  • Mis à jour en sélénium 3.4.1

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.

19
Winterflags

Notez également que vous avez la bonne version 32/64bit pour votre geckodriver.

11
apmacniven

pour moi, il suffisait de simplement mettre à niveau FF

5
elad silver

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).

0
Jeremy S.

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":""}}')
0
Rohit Dhankar