Análisis del código fuente de la API de Selenium3 Python WebDriver (18) Implementación de FireFox WebDriver, extensión de instalación

Según "Selenium3 Python WebDriver API Source Code Analysis (2): Selenium Package Directory Structure, Module Function Overview", selenium\webdriver\remote\webdriver.pylas WebDriverclases del módulo definen las características básicas del WebDriver general, y varios navegadores heredan las WebDriverclases de acuerdo con sus propias características para realizar más implementaciones. selenium\webdriver\firefox\webdriver.pyLas WebDriverclases del módulo implementan FireFox WebDriver y selenium\webdriver\__init__.pyse 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 u remote_connection.RemoteConnectionobjeto. El valor predeterminado es 'http://127.0.0.1:4444/wd/hub'.
  • desired_capabilities-Al crear una nueva sesión capabilities.
  • browser_profile- selenium.webdriver.firefox.firefox_profile.FirefoxProfileobjeto. Archivo de configuración personalizado. Solo para Firefox.
  • proxy- selenium.webdriver.common.proxy.Proxyobjeto. Configuración de proxy.
  • keep_alive- Valor booleano. Ya sea para establecer una conexión larga. El valor predeterminado es False.
  • file_detector-Procesador de archivos personalizado. Se Noneutiliza el valor predeterminado LocalFileDetector().
  • options- Optionsinstancia de clase. Configuración de las opciones del navegador.

Los atributos son:

  • session_id: ID de sesión.
  • capabilities: La capabilitiescolección devuelta por el navegador .
  • command_executor: remote_connection.RemoteConnectionObjeto. El objeto de ejecución del comando.
  • error_handler: ErrorHandlerObjeto. 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 capabilitiesdiccionario, pasados ​​al navegador.
Para algunos parámetros, como firefox_profiley options.profileson mutuamente excluyentes, su prioridad está determinada por un escenario específico. capabilitiesEs el parámetro menos palabra clave específica, seguido de options, firefox_binaryy firefox_profile. Específicamente, si tanto los parámetros establecidos firefox_profilecomo los options.profilede la aplicación en este momento firefox_profile, options.profileserá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: FirefoxProfileObjeto o cadena. Si no está definido, se generará un nuevo archivo de configuración personalizado en el directorio temporal del sistema operativo.
  • firefox_binary: FirefoxBinaryO 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 capabilitiesDiccionario, pronto quedará obsoleto.
  • proxy: Configuración de proxy.
  • executable_path: geckodriverLa ruta, que se obtiene de las variables del sistema pathde forma predeterminada .
  • options: options.OptionsEjemplos.
  • service_log_path: Ruta de almacenamiento de registros.
  • firefox_options: Equivalente options, quedará obsoleto.
  • service_args: La lista de parámetros pasada al servicio del controlador.
  • desired_capabilities: Igual que capabilities.
  • log_path: Igual service_log_pathy 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 pathes 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.xpiexpandida id.
Inserte la descripción de la imagen aquí

Desinstalar extensión

La firma del método es: el def uninstall_addon(self, identifier):
parámetro identifieres la extensión devuelta cuando se instala la extensión id.

Supongo que te gusta

Origin blog.csdn.net/mighty13/article/details/115113989
Recomendado
Clasificación