Selenium正在给予" KeyError:' sessionId' "

时间:2017-05-01 17:00:24

标签: python python-2.7 selenium geckodriver

我正在尝试使用selenium启动firefox,但我一直在

File "/Library/Python/2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 150, in __init__
    keep_alive=True)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__
    self.start_session(desired_capabilities, browser_profile)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 180, in start_session
    self.session_id = response['sessionId']
KeyError: 'sessionId'

我试图运行的代码非常简单

from selenium import webdriver
driver = webdriver.Firefox()

我尝试过的解决方案:

  1. 尝试更新硒(我已经在使用最新的硒)
  2. 将geckodriver更新为版本0.16.1
  3. 尝试更改代理设置
  4. 到目前为止,一切都没有奏效。

    我正在使用的配置:   geckodriver 0.16.1 ,Mozilla Firefox 53 ,Python 2.7 ,Selenium 3.4.1 ,我在Mac系统上(如果有帮助的话)

4 个答案:

答案 0 :(得分:3)

从Selenium 3.2.0升级到3.7.0为我修复了这个错误。我有geckodriver 0.19.1

pip install -U selenium

答案 1 :(得分:0)

我没有详细说明这一点,对不起,但也许这可以帮助你或给你一个有用的提示:

以下在Ubuntu 16.04下为我工作:

如果您将pip安装程序作为普通用户帐户运行,它似乎会创建包含内容的这两个目录:

  • 〜/。本地/ lib中
  • 〜/。本地/硒

不知怎的,它无法正确更新,因此这两个目录似乎包含旧版本的selenium并且在我的设置中需要libs。我删除了这两个子树,因此导入webdriver现在使用系统范围的selenium安装,我通过

升级为root。
sudo pip install -U selenium

然后它对我有用。请看看你的脚本正在使用哪个python版本,我需要告诉bash我在python脚本开头通过shebang使用python2.7:

#!/usr/bin/python2.7
# -*- coding: utf-8 -*-

也许这与你安装的python绑定有关,但我不知道,这只是一个猜测,正如我上面所说,我没有深入研究它,但它可能会给你一个提示

我希望它有所帮助。干杯!

答案 2 :(得分:0)

我已通过将硒服务器版本降级到v.2.x解决了该问题。

即-我尝试使用最新的2.x,而不是最新的3.x服务器版本(selenium-server-standalone-3.141.59.jar)。硒服务器版本(selenium-server-standalone-2.53.1.jar)

我的Python版本:

Python 2.7.10
robotframework==2.9.2
robotframework-requests==0.4.5
requests==2.11.1
requests-oauthlib==0.7.0
requests-toolbelt==0.7.0
robotframework-selenium2library==1.8.0
selenium==3.0.1
requests-oauthlib==0.7.0
requests-toolbelt==0.7.0

其他软件:

ChromeDriver 77.0.3865.40
Google Chrome Version 77.0.3865.90 (Official Build) (64-bit)
Windows 10`

答案 3 :(得分:0)

对我来说,发生了以下事情(我在Kali Linux上工作):

  1. 卸载Selenium:
    pip uninstall selenium

  2. 当我尝试重新安装selenium时,我发现/usr/lib/python3/dist-packages/中已经存在另一个selenium(v 4.0)实例

  3. 我从上述目录中同时删除了seleniumselenium-4.0.0a1.egg-info文件夹(您需要sudo权限)。

  4. 我使用selenium重新安装了pip,现在脚本运行正常。