如何在 python 上使用 Selenium 连接到 Firefox 的现有实例 - 我无法连接到 marionette 端口

问题描述 投票:0回答:1

我正在尝试使用 Selenium 连接到 Firefox 的现有实例 - 文档说要使用类似的东西

options=webdriver.FirefoxOptions()
options.binary_location = r'C:\Program Files\Mozilla Firefox\firefox.exe'


webdriver_service = Service(r'c:\tmp\geckodriver.exe')
driver = webdriver.Firefox(service = webdriver_service, service_args=['--marionette-port', '2828', '--connect-existing'])

但是,我收到错误

    driver = webdriver.Firefox(service = webdriver_service, service_args=['--marionette-port', '2828', '--connect-existing'])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: WebDriver.__init__() got an unexpected keyword argument 'service_args'

我看到其他关于“意外的关键字参数”的问题,他们说最新版本的 Selenium 有其他通过选项传递参数的方法。

我试过了

options.add_argument('--marionette-port')
options.add_argument('2828') 
options.add_argument('--connect-existing')

但它似乎仍然创建了一个新的 Firefox 实例

我已经用以下参数启动了 Firefox

“C:\ Program Files \ Mozilla Firefox irefox.exe”-marionette -start-debugger-server 2828

我该如何解决这个问题?


这些是我的版本

Python版本

python --version
Python 3.12.2

硒版本

pip show selenium
Name: selenium
Version: 4.18.1

Gecko驱动版本

geckodriver --version
geckodriver 0.34.0 (c44f0d09630a 2024-01-02 15:36 +0000)

火狐 123.0(64 位)

Windows 11

python selenium-webdriver firefox automation
1个回答
0
投票

您应该将

service_args
参数放在
Service
类中,而不是放在
Firefox
上。我相信这应该有效

options=webdriver.FirefoxOptions()
options.binary_location = r'C:\Program Files\Mozilla Firefox\firefox.exe'


webdriver_service = Service(r'c:\tmp\geckodriver.exe', service_args=['--marionette-port', '2828', '--connect-existing'])
driver = webdriver.Firefox(service = webdriver_service)
© www.soinside.com 2019 - 2024. All rights reserved.