9

首先,我想在 selenium 控制我的 Firefox 时使用一些插件。

所以,我尝试在 selenium 代码中加载 Firefox 的默认配置文件。

我的代码:

from selenium.webdriver.firefox.firefox_profile import FirefoxProfile

profile_path = r'C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\y1uqp5mi.default'
default_profile = FirefoxProfile(profile_path)

driver = webdriver.Firefox(service=service, options=options, firefox_profile=default_profile)

但是,当我启动代码时,发生了DeprecationWarningfirefox_profile has been deprecated, please pass in an Options object

我搜索了很多,我认为这不是一个困难的问题,但遗憾的是我最终无法解决这个问题,也许是我糟糕的英语困扰着我......

4

3 回答 3

12

以下是相关文档: https ://www.selenium.dev/documentation/webdriver/capabilities/driver_specific_capabilities/#setting-a-custom-profile

我在本地尝试过,效果很好:

已编辑:我已更改代码,因此没有弃用警告

from selenium.webdriver import Firefox
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options

profile_path = r'C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\y1uqp5mi.default'
options=Options()
options.set_preference('profile', profile_path)
service = Service(r'C:\WebDriver\bin\geckodriver.exe')

driver = Firefox(service=service, options=options)

driver.get("https://selenium.dev")

driver.quit()
于 2021-10-14T14:49:37.513 回答
8

此错误消息...

firefox_profile has been deprecated, please pass in an Options object

...暗示FirefoxProfile()弃用并与一起使用自定义配置文件,您必须使用Options.


DeprecationWarning与以下CHANGELOGS内联:

  • 硒 4 β 1

    • 弃用驱动程序实例化中除Options和参数之外的所有参数。Service(#9125,#9128)
  • 硒 4 β 2

    • 在选项中弃用 Firefox 配置文件
  • 硒 4 Beta 3

    • 仅在选项中使用 Profile 时才发出弃用警告

之前设置的所有配置profile.set_preference()现在都可以设置options.set_preference()如下:

from selenium.webdriver import Firefox
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options

profile_path = r'C:\Users\Admin\AppData\Roaming\Mozilla\Firefox\Profiles\s8543x41.default-release'
options=Options()
options.set_preference('profile', profile_path)
options.set_preference('network.proxy.type', 1)
options.set_preference('network.proxy.socks', '127.0.0.1')
options.set_preference('network.proxy.socks_port', 9050)
options.set_preference('network.proxy.socks_remote_dns', False)
service = Service('C:\\BrowserDrivers\\geckodriver.exe')
driver = Firefox(service=service, options=options)
driver.get("https://www.google.com")
driver.quit()

tl; 博士

设置自定义配置文件

于 2021-11-23T22:58:02.343 回答
0

我试过这个

from selenium.webdriver.firefox.options import Options

profile_path = r'C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\y1uqp5mi.default'
options=Options()
options.set_preference('profile', profile_path)
driver = Firefox(options=options)
于 2022-01-12T11:55:26.913 回答