Según "Selenium3 Python WebDriver API Source Code Analysis (2): Selenium Package Directory Structure, Module Function Overview", selenium\webdriver\remote\webdriver.py
las WebDriver
clases del módulo definen las características básicas del WebDriver general, y varios navegadores heredan las WebDriver
clases de acuerdo con sus propias características para realizar más implementaciones. selenium\webdriver\firefox\webdriver.py
Las WebDriver
clases del módulo implementan FireFox WebDriver y selenium\webdriver\__init__.py
se exponen a través de external ( from .firefox.webdriver import WebDriver as Firefox
). Por lo general, use el siguiente método para inicializar FireFox WebDriver.
from selenium import webdriver
driver = webdriver.Firefox()
WebDriver remoto
La firma de clase del WebDriver remoto es: los
Class WebDriver(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=None, browser_profile=None, proxy=None, keep_alive=False, file_detector=None, options=None)
parámetros del constructor son:
command_executor
: Cadena uremote_connection.RemoteConnection
objeto. El valor predeterminado es'http://127.0.0.1:4444/wd/hub'
.desired_capabilities
-Al crear una nueva sesióncapabilities
.browser_profile
-selenium.webdriver.firefox.firefox_profile.FirefoxProfile
objeto. Archivo de configuración personalizado. Solo para Firefox.proxy
-selenium.webdriver.common.proxy.Proxy
objeto. Configuración de proxy.keep_alive
- Valor booleano. Ya sea para establecer una conexión larga. El valor predeterminado esFalse
.file_detector
-Procesador de archivos personalizado. SeNone
utiliza el valor predeterminadoLocalFileDetector()
.options
-Options
instancia de clase. Configuración de las opciones del navegador.
Los atributos son:
session_id
: ID de sesión.capabilities
: Lacapabilities
colección devuelta por el navegador .command_executor
:remote_connection.RemoteConnection
Objeto. El objeto de ejecución del comando.error_handler
:ErrorHandler
Objeto. Manejador de errores.
Firefox WebDriver
La firma de clase de Firefox WebDriver es:
Class WebDriver(firefox_profile=None, firefox_binary=None, timeout=30, capabilities=None, proxy=None, executable_path="geckodriver", options=None, service_log_path="geckodriver.log", firefox_options=None, service_args=None, desired_capabilities=None, log_path=None, keep_alive=True)
Los parámetros del constructor de Firefox WebDriver es más complejo, hay una serie de parámetros de duplicación de funciones, hay algunos parámetros a punto de desperdiciarse, eventualmente reuniendo estos parámetros configurados como un capabilities
diccionario, pasados al navegador.
Para algunos parámetros, como firefox_profile
y options.profile
son mutuamente excluyentes, su prioridad está determinada por un escenario específico. capabilities
Es el parámetro menos palabra clave específica, seguido de options
, firefox_binary
y firefox_profile
. Específicamente, si tanto los parámetros establecidos firefox_profile
como los options.profile
de la aplicación en este momento firefox_profile
, options.profile
serán ignorados. Del mismo modo, capabilities["moz:firefoxOptions"]["profile"]
la prioridad es menor options.profile
.
Los parámetros del método de construcción son:
firefox_profile
:FirefoxProfile
Objeto o cadena. Si no está definido, se generará un nuevo archivo de configuración personalizado en el directorio temporal del sistema operativo.firefox_binary
:FirefoxBinary
O la ruta del archivo binario de Firefox. Si no se define, se utiliza la ubicación de instalación predeterminada de Firefox del sistema operativo.timeout
: El período de tiempo de espera para iniciar Firefox.capabilities
:desired capabilities
Diccionario, pronto quedará obsoleto.proxy
: Configuración de proxy.executable_path
:geckodriver
La ruta, que se obtiene de las variables del sistemapath
de forma predeterminada .options
:options.Options
Ejemplos.service_log_path
: Ruta de almacenamiento de registros.firefox_options
: Equivalenteoptions
, quedará obsoleto.service_args
: La lista de parámetros pasada al servicio del controlador.desired_capabilities
: Igual quecapabilities
.log_path
: Igualservice_log_path
y quedará obsoleto.keep_alive
: Si establecer una conexión larga.
La firma de clase simplificada es:
Class WebDriver(firefox_profile=None, firefox_binary=None, timeout=30, executable_path="geckodriver", options=None, service_log_path="geckodriver.log", service_args=None, desired_capabilities=None, keep_alive=True)
Métodos de instalación y desinstalación de extensiones
La clase Firefox WebDriver implementa métodos de instalación y desinstalación de extensiones.
Instalar extensión
La firma del método es: el def install_addon(self, path, temporary=None):
parámetro path
es la ruta absoluta de la extensión.
El valor de retorno es extendido id
, fácil de usar al desinstalar.
Caso:
import selenium.webdriver as webdriver
driver = webdriver.Firefox()
addon_id = driver.install_addon(r"\path\d.xpi")
print(addon_id)
La salida es: {32af1358-428a-446d-873e-5f8eb5f2a72e}
es decir, d.xpi
expandida id
.
Desinstalar extensión
La firma del método es: el def uninstall_addon(self, identifier):
parámetro identifier
es la extensión devuelta cuando se instala la extensión id
.