Primero, quiero usar algunos complementos mientras selenium controla mi firefox.
Entonces, intenté cargar el perfil predeterminado de Firefox en el código de selenio.
Mi código:
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) Pero, cuando inicio el código, ocurrió una advertencia de depreciación: firefox_profile has been deprecated, please pass in an Options object
Busco mucho y no creo que sea un problema difícil, pero lamentablemente no puedo resolver este problema finalmente, tal vez mi mal inglés me estorbe... ...
Aquí está la documentación para esto: https://www.selenium.dev/documentation/webdriver/capabilities/driver_specific_capabilities/#setting-a-custom-profile
Intenté esto localmente y funcionó:
EDITADO : he cambiado el código, por lo que no hay advertencias de obsolescencia
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()Este mensaje de error...
firefox_profile has been deprecated, please pass in an Options object ... implica que FirefoxProfile() ha quedado en desuso y con selenium4 para usar un perfil personalizado , debe usar una instancia de Options .
Este DeprecationWarning estaba en línea con los siguientes CHANGELOGS :
Options y Service , en la instanciación del controlador. (#9125,#9128) Todas las configuraciones que se establecieron anteriormente a través de profile.set_preference() ahora se pueden establecer a través de options.set_preference() de la siguiente manera:
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()probé esto
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)