【问题标题】:Selenium is giving " KeyError: 'sessionId' "Selenium 给出“KeyError: 'sessionId'”
【发布时间】:2017-09-29 02:26:59
【问题描述】:

我正在尝试使用 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. 尝试更新 selenium(我已经在使用最新的)
  2. 将 geckodriver 更新到 0.16.1 版
  3. 尝试更改代理设置

到目前为止还没有任何效果。

我正在使用的配置: 壁虎驱动 0.16.1 , 火狐 53 , 蟒蛇 2.7 , 硒 3.4.1 , 我在 Mac 系统上(如果有帮助的话)

【问题讨论】:

  • 您需要在 Firefox() 方法中提供 geckodriver 二进制文件的路径
  • @bad_deadpool 我也试过了,但还是不行。请提出其他建议

标签: python python-2.7 selenium geckodriver


【解决方案1】:

我没有详细说明这一点,对此感到抱歉,但也许这可能会对您有所帮助或给您有用的提示:

以下在 Ubuntu 16.04 下对我有用:

如果您以普通用户帐户运行 pip 安装程序,它似乎会创建以下两个目录,其中包含以下内容:

  • ~/.local/lib
  • ~/.local/selenium

不知何故,它无法正确更新,所以这两个目录似乎包含旧版本的 selenium,并且在我的设置中需要库。我已经删除了这两个子树,所以导入 webdriver 现在使用系统范围的 selenium 安装,我通过 root 升级了它

sudo pip install -U selenium

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

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

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

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

【讨论】:

    【解决方案2】:

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

    pip install -U selenium
    

    【讨论】:

      【解决方案3】:

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

      即- 我尝试了最新的 2.x,而不是最新的 3.x 服务器版本(selenium-server-standalone-3.141.59.jar)。 selenium 服务器版本(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`
      

      【讨论】:

        【解决方案4】:

        对我来说发生了以下事情(我正在使用 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. 我使用pip 重新安装了selenium,现在脚本运行正常。

        【讨论】:

          猜你喜欢
          • 2017-07-30
          • 1970-01-01
          • 2022-01-26
          • 1970-01-01
          • 1970-01-01
          • 2018-03-15
          • 2019-12-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多