You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22.04运行webbot示例遇SessionNotCreatedException错误求助

问题:Ubuntu 22.04运行webbot代码出现SessionNotCreatedException错误

问题详情

尝试在Ubuntu 22.04中运行以下Python webbot示例代码:

from webbot import Browser

web = Browser()
web.go_to('google.com')
web.type('hello its me')  # or web.press(web.Key.SHIFT + 'hello its me')
web.press(web.Key.ENTER)
web.go_back()
web.click('Sign in')
web.type('mymail@gmail.com' , into='Email')
web.click('NEXT' , tag='span')
web.type('mypassword' , into='Password' , id='passwordFieldId')
web.click('NEXT' , tag='span') # you are logged in . woohoooo

使用Python3运行时出现错误:

web = Browser()
  File "/usr/local/lib/python3.10/dist-packages/webbot/webbot.py", line 68, in __init__
    self.driver = webdriver.Chrome(executable_path=driverpath, options=options)
  File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/chrome/webdriver.py", line 80, in __init__
    super().__init__(
  File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/chromium/webdriver.py", line 104, in __init__
    super().__init__(
  File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py", line 286, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py", line 378, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py", line 440, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created exception: Missing or invalid capabilities
  (Driver info: chromedriver=2.39.562737 (dba483cee6a5f15e2e2d73df16968ab10b38a2bf),platform=Linux 5.19.0-38-generic x86_64)

已通过以下命令安装Chrome:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb

需求:解决该错误,仅需实现网站登录功能,不限制浏览器类型。


解决方案

方案1:修复Chrome与chromedriver版本不兼容问题

错误核心是chromedriver版本过旧(2.39),和当前安装的最新Chrome版本不匹配。按以下步骤操作:

  • 查看当前Chrome版本

    google-chrome --version
    

    输出类似 Google Chrome 124.0.6367.60,记主版本号(比如124)。

  • 卸载旧的chromedriver

    sudo rm /usr/local/bin/chromedriver
    
  • 下载对应版本的chromedriver
    找到ChromeDriver官方渠道中与Chrome主版本一致的Linux版chromedriver包进行下载。

  • 解压并安装

    unzip chromedriver-linux64.zip
    sudo mv chromedriver-linux64/chromedriver /usr/local/bin/
    sudo chmod +x /usr/local/bin/chromedriver
    
  • 验证版本匹配

    chromedriver --version
    

    输出版本应和Chrome主版本一致。

重新运行你的Python代码,问题即可解决。

方案2:改用Firefox浏览器

如果不想折腾Chrome版本,改用Firefox更简单,步骤如下:

  • 安装Firefox

    sudo apt update
    sudo apt install firefox -y
    
  • 安装geckodriver(Firefox的WebDriver)
    从Mozilla官方渠道下载对应Linux系统的geckodriver包,解压后执行以下命令:

    tar -xvzf geckodriver-v0.34.0-linux64.tar.gz
    sudo mv geckodriver /usr/local/bin/
    sudo chmod +x /usr/local/bin/geckodriver
    
  • 修改webbot代码指定使用Firefox
    只需初始化Browser时指定浏览器为firefox:

    from webbot import Browser
    
    # 指定使用Firefox
    web = Browser(browser='firefox')
    web.go_to('google.com')
    web.type('hello its me')
    web.press(web.Key.ENTER)
    web.go_back()
    web.click('Sign in')
    web.type('mymail@gmail.com' , into='Email')
    web.click('NEXT' , tag='span')
    web.type('mypassword' , into='Password' , id='passwordFieldId')
    web.click('NEXT' , tag='span')
    

运行修改后的代码即可正常使用Firefox完成登录操作。


内容的提问来源于stack exchange,提问作者rare77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 02:27:06