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

如何用Selenium打开Opera已有实例并复用会话保持GUID与Serial

我来帮你解决这两个相关的问题,核心都是复用已有浏览器会话来满足你的需求:

1. 用Selenium连接Opera的已有浏览器实例

要实现这个,关键是让Opera启动时开启远程调试端口,然后Selenium通过这个端口连接到已运行的实例:

  • 第一步:启动Opera并开启远程调试
    先关闭所有正在运行的Opera窗口,然后通过命令行启动Opera,指定远程调试端口(比如9222,你可以换成其他未被占用的端口):

    • Windows系统:
      "C:\Program Files\Opera\launcher.exe" --remote-debugging-port=9222
      
    • Linux/macOS系统:
      opera --remote-debugging-port=9222
      

    启动后,Opera会保持运行状态,等待Selenium的连接。

  • 第二步:编写Selenium代码连接已有实例
    用Python的话,代码示例如下:

    from selenium import webdriver
    from selenium.webdriver.opera.options import Options
    
    opera_options = Options()
    # 指定调试端口地址,和启动Opera时的端口一致
    opera_options.debugger_address = "127.0.0.1:9222"
    
    # 连接到已运行的Opera实例
    driver = webdriver.Opera(options=opera_options)
    # 现在你可以操作这个已有实例了,比如打开新页面或操作当前页面
    driver.get("https://your-target-site.com")
    
2. 复用会话以保持同一GUID和序列号

你遇到的每次WebDriver登录生成新标识符的问题,根源在于默认情况下WebDriver会创建全新的Opera用户数据目录,相当于每次用一个"干净"的浏览器登录,网站自然会分配新的会话信息。而复用已有浏览器实例就能解决这个问题:

  • 当你用上面的方法连接到已登录目标网站的Opera实例时,该实例的用户数据目录里已经保存了登录后的Cookie、本地存储(包括网站的会话标识符和序列号),所以网站会识别为同一个会话,不会生成新的GUID和serial。
  • 如果你希望即使重启Opera后依然能复用这个会话,可以在启动Opera时指定固定的用户数据目录:
    • Windows示例:
      "C:\Program Files\Opera\launcher.exe" --remote-debugging-port=9222 --user-data-dir=C:\MyOperaProfile
      
    • Linux/macOS示例:
      opera --remote-debugging-port=9222 --user-data-dir=~/MyOperaProfile
      
    这样所有会话数据都会保存在这个指定的目录里,下次用同样命令启动Opera,再用Selenium连接,依然能复用之前的登录会话。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:31:10