4 votes

Pourquoi la réponse de Selenium n'a pas de sessionId ?

J'essaie d'exécuter le webdriver Firefox de Selenium et j'obtiens l'erreur ci-dessous. Je peux voir que le response n'a pas de sessionId - la ligne incriminée est self.session_id = response['sessionId'] - mais je ne sais pas pourquoi. Je l'ai exécuté de la manière suivante et j'obtiens la même erreur :

  1. Cygwin, exécution de nosetests
  2. Cygwin directement
  3. Windows, en exécutant nosetests
  4. Windows directement

---------------------------------------------------------------------- Traceback (most recent call last): File "C:\dev\tools\cygwin\home\207013288\dev\projects\scorpion\test\unit\test_ approve_workflows.py", line 27, in test_login 'password', userid='207013288', test=True) File "C:\dev\tools\cygwin\home\207013288\dev\projects\scorpion\src\workflows.p y", line 20, in login browser = webdriver.Firefox() File "C:\dev\sdks\Python33\lib\site-packages\selenium-2.32.0-py3.3.egg\seleniu m\webdriver\firefox\webdriver.py", line 62, in __init__ desired_capabilities=capabilities) File "C:\dev\sdks\Python33\lib\site-packages\selenium-2.32.0-py3.3.egg\seleniu m\webdriver\remote\webdriver.py", line 72, in __init__ self.start_session(desired_capabilities, browser_profile) File "C:\dev\sdks\Python33\lib\site-packages\selenium-2.32.0-py3.3.egg\seleniu m\webdriver\remote\webdriver.py", line 116, in start_session self.session_id = response['sessionId'] nose.proxy.KeyError: 'sessionId' -------------------- >> begin captured logging << -------------------- selenium.webdriver.remote.remote_connection: DEBUG: POST http://127.0.0.1:63801/ hub/session {"sessionId": null, "desiredCapabilities": {"version": "", "browserN ame": "firefox", "platform": "ANY", "javascriptEnabled": true}} --------------------- >> end captured logging << ---------------------

Je n'ai jamais utilisé Selenium auparavant et je ne sais pas trop comment m'y prendre.

4voto

YB -Abeokuta Points 155

OK, tout d'abord, je voudrais dire que j'ai failli m'arracher tous mes cheveux en essayant de résoudre ce problème. Ma configuration : Python 2.7 Firefox 22.0 Selenium WebDriver 2.33 Windows XP (connexion internet via un serveur proxy)

Vous avez repéré mon problème ?

Solution :

  • Ouvrez le panneau de contrôle
  • Options Internet
  • Connexions
  • Configuration du réseau local
  • Sur cette page, vous verrez probablement les détails de votre serveur proxy, avec une case à cocher : "Ne pas utiliser de serveur proxy pour les adresses locales". Cette case à cocher est probablement déjà sélectionnée (car il est logique de ne pas utiliser de serveur proxy pour les adresses locales). Malheureusement, Selenium WebDriver semble ignorer cette case à cocher et sa valeur. Cochée ou non, il détectera votre serveur proxy et l'appliquera à toutes les url (ou du moins c'est ce qu'il a fait dans mon cas).
  • Cliquez sur le bouton "Avancé", et entrez manuellement "127.0.0.1" dans la case "Exceptions".
  • Sauvegardez la modification.
  • Ré-exécutez votre test dans le pilote web, avec un peu de chance vous ne verrez plus le message d'erreur qui fait référence : self.session_id = response['sessionId']

Les choses qui n'ont pas marché pour moi :

Avant de trouver cette solution (avec l'aide d'un ingénieur plus expérimenté), j'ai suivi les instructions données ici : http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#advanceduserinteractions pour configurer/modifier/éviter le proxy. Cela ne m'a pas permis d'obtenir le résultat que je cherchais, cependant.

J'ai aussi regardé ceci : Implémentation de WebdriverBackedSelenium en Python mais il s'agit d'une ancienne version de webdriver, et il suggère de supprimer tous les paramètres de proxy dans l'ensemble du système, ce qui est absolument impossible (en ce qui me concerne).

0voto

Romano Vacca Points 175

SOLUTION MAC OSX

J'utilise Python 2.7, FireFox 48.0.2 et Chrome Versie 57.0.2987.98 (64 bits).

L'erreur *self.session_id = response['sessionId']* pour moi a été résolu en allant dans les préférences système -> Réseau -> Avancé dans l'onglet Wifi. -> Proxy's -> Activer "Automatic Proxydetection".

Après avoir changé cela, l'erreur ne s'est plus produite.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X