4

我正在尝试运行 Selenium 的 Firefox 网络驱动程序并收到以下错误。我可以看到response没有sessionId- 违规行是self.session_id = response['sessionId']- 但我不知道为什么。我已经通过以下方式运行它并得到相同的错误:

  1. Cygwin,运行鼻子测试
  2. Cygwin 直接
  3. Windows,运行鼻子测试
  4. 直接视窗

---------------------------------------------------------------------- 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,我不知道从这里去哪里。

4

2 回答 2

4

好的,首先我想说我几乎拔掉了所有头发试图解决这个问题。我的设置:Python 2.7 Firefox 22.0 Selenium WebDriver 2.33 Windows XP(通过代理服务器连接互联网)

发现我的问题了吗?

解决方案:

  • 打开控制面板
  • 互联网选项
  • 连接
  • 局域网配置
  • 在此页面上,您可能会看到代理服务器的详细信息,并带有一个复选框:“不要将代理服务器用于本地地址”。这个复选框可能已经被选中(因为不使用本地地址代理很有意义)。不幸的是,Selenium WebDriver 似乎忽略了这个复选框,它的价值。选中或未选中,它将检测您的代理服务器并将其应用于所有 url(或者至少在我的情况下是这样。)
  • 单击“高级”按钮,在“例外”框中手动输入“127.0.0.1”。
  • 保存更改。
  • 在 Web 驱动程序中重新运行您的测试,希望您不会再看到错误消息:self.session_id = response['sessionId']

对我不起作用的事情:

在找到这个解决方案之前(在更有经验的工程师的帮助下),我浏览了这里的说明:http: //docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#advanceduserinteractions .. 用于设置/更改/绕过代理。但是,没有得到我想要的结果。

我还看了这个: Implementing WebdriverBackedSelenium in Python .. 但它提到了旧版本的 webdriver,它建议删除系统范围内的所有代理设置,这绝对不是首发(就我而言)。

于 2013-07-09T09:49:48.153 回答
0

MAC OSX 解决方案

我正在使用 Python 2.7 和 FireFox 48.0.2 和 Chrome Versie 57.0.2987.98(64 位)。

*self.session_id = response['sessionId']*通过转到 Wifi 选项卡中的系统首选项 -> 网络 -> 高级解决了我的错误。-> 代理 -> 打开“自动代理检测”。

更改此设置后,错误不再发生。

于 2017-03-17T07:32:07.380 回答