【问题标题】:Connect to an already running instance of chrome using selenium in python在 python 中使用 selenium 连接到已经运行的 chrome 实例
【发布时间】:2013-09-10 14:18:13
【问题描述】:

我在使用 selenium 使用扩展程序启动 chrome 时遇到了问题。我记录了一个问题 https://code.google.com/p/chromedriver/issues/detail?id=508

对于一种解决方法,我计划启动 chrome,而不是启用所需的扩展,然后使用 selenium 连接到它。

但我不能这样。 任何人都可以帮助解决这个问题,因为 d=webdriver.Chrome() 总是启动一个新的 chrome 实例。 我想连接到已经运行的 chrome 实例。

【问题讨论】:

    标签: python google-chrome selenium


    【解决方案1】:

    **重新连接到 python selenium 中的驱动程序 **
    这适用于所有驱动程序。
    1.打开驱动

        driver = webdriver.Firefox()
    
    1. 从驱动对象中提取到 session_id 和 _url。

      url = driver.command_executor._url       #"http://127.0.0.1:60622/hub"
      session_id = driver.session_id            #'4e167f26-dc1d-4f51-a207-f761eaf73c31'
      

    3.使用这两个参数连接到您的驱动程序。

        driver = webdriver.Remote(command_executor=url,desired_capabilities={})
        driver.session_id = session_id
    
    1. 你又连接到你的驱动程序了。

      driver.get("http://www.mrsmart.in")

    【讨论】:

    • 我正在使用 Chrome,这只是打开了另一个窗口。
    【解决方案2】:

    这在 Selenium、任何浏览器和任何编程语言中都是不可能的。

    https://code.google.com/p/selenium/issues/detail?id=18

    【讨论】:

      【解决方案3】:

      现在是,

      1. 启动 java 服务器
      2. 点击 localhost:4444/wd/hub
      3. 为相应的浏览器创建会话
      4. 使用给定的会话 ID 创建一个远程 webdriver 客户端(语法可能因您使用的语言绑定而异)

      参考:github issue

      【讨论】:

        猜你喜欢
        • 2017-02-03
        • 2022-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-20
        • 2021-02-22
        相关资源
        最近更新 更多