无法使用 python 中的 selenium 4 的 option.set_preference 加载现有的 firefox 配置文件

Tyl*_*ler 10 selenium python-3.x selenium-firefoxdriver firefox-profile selenium4

我有这段代码可以工作并加载 Firefox 配置文件

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile


ffOptions = Options()
ffProfile = FirefoxProfile(r'C:\Users\Tyler\AppData\Roaming\Mozilla\Firefox\Profiles\0753x1pz.default')
ffOptions.profile = ffProfile

driver = webdriver.Firefox(options=ffOptions)
driver.get("http://www.google.com")
Run Code Online (Sandbox Code Playgroud)

仅它给出以下弃用警告:

firefox_profile 已被弃用,请使用 Options 对象

设置配置文件已被弃用。请使用 set_preference 和 install_addons 方法

为了解决警告,我尝试将代码更新为

from selenium import webdriver
from selenium.webdriver.firefox.options import Options


ffOptions = Options()
ffOptions.set_preference('profile', r'C:\Users\Tyler\AppData\Roaming\Mozilla\Firefox\Profiles\0753x1pz.default')
    
driver = webdriver.Firefox(options=ffOptions)
driver.get("http://www.google.com")
Run Code Online (Sandbox Code Playgroud)

现在没有警告,但浏览器打开时未设置配置文件,它是一个空白配置文件。

ren*_*x98 16

我遇到了同样的问题,这对我有用:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options


ffOptions = Options()

ffOptions.add_argument("-profile")
ffOptions.add_argument(r'C:\Users\Tyler\AppData\Roaming\Mozilla\Firefox\Profiles\0753x1pz.default')
driver = webdriver.Firefox(options=ffOptions)
driver.get("http://www.google.com")
Run Code Online (Sandbox Code Playgroud)

  • 这可行,但如果已经打开了另一个实例,则 Firefox 不会打开,您知道吗? (4认同)
  • 这不是一个好的解决方案。Selenium 通常会复制配置文件并使用该副本,因此更改不会影响下一次运行。但您所做的是指示 Firefox 直接使用该配置文件,这使得对其进行的任何更改都是永久的(并影响下一次运行)。 (4认同)
  • 我使用仅为 selenium 创建的配置文件(https://support.mozilla.org/en-US/kb/profile-manager-create-remove-switch-firefox-profiles),因此我可以在我的 Firefox 运行个人资料。如果这还不够,也许打开多个选项卡的可能性可能会对您有所帮助。 (2认同)