我正在尝试运行Selenium的Firefox webdriver,并得到下面的错误。 我可以看到, response
没有sessionId
– 违规行是self.session_id = response['sessionId']
– 但我不知道为什么。 我已经通过以下方式运行它,并得到相同的错误:
---------------------------------------------------------------------- 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 << ---------------------
我之前没有使用过selenium,我不知道该从哪里出发。
好的,首先我想说的是,我几乎拔掉了所有的头发,试图解决这个问题。 我的设置:Python 2.7 Firefox 22.0 seleniumium WebDriver 2.33 Windows XP(通过代理服务器连接Internet)
发现我的问题了吗?
在找到这个解决方案(在一个更有经验的工程师的帮助下)之前,我仔细阅读了这里的说明: http : //docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#advanceduserinteractions ..用于设置/更改/绕过代理。 虽然没有得到我想要的结果。
我也看了这个: 在Python中实现WebdriverBackedseleniumium ..但是它提到了一个旧版本的webdriver,它建议删除所有的系统代理设置,这是一个绝对的非启动器(就我而言)。
MAC OSX解决方案
我使用Python 2.7和FireFox 48.0.2和Chrome Versie 57.0.2987.98(64位)。
对于我的错误*self.session_id = response['sessionId']*
是通过转到系统偏好设置 – >网络 – >高级在无线标签。 – >代理服务器 – >打开“自动代理检测”。
更改后,错误不再发生。