¿Qué es la clase de Opciones de Chrome?
La clase de opciones de Chrome se utiliza para manipular varias propiedades del controlador de Chrome. La clase de opciones de Chrome se usa generalmente junto con las capacidades deseadas.
Ejemplo:
El siguiente ejemplo muestra una forma de abrir el navegador Chrome en modo maximizado usando la clase ChromeOptions. Necesitamos pasar una instancia de la clase ChromeOptions a la inicialización del controlador web.
Opciones de ChromeOptions = new ChromeOptions ()options.addArgument ("inicio maximizado");Controlador ChromeDriver = nuevo ChromeDriver (opciones);
A continuación se muestra la lista de argumentos disponibles y más utilizados para la clase ChromeOptions
- inicio maximizado : abre Chrome en modo maximizar
- incógnito: abre Chrome en modo incógnito
- sin cabeza: abre Chrome en modo sin cabeza
- disable-extensions : desactiva las extensiones existentes en el navegador Chrome
- deshabilitar el bloqueo de ventanas emergentes : deshabilita las ventanas emergentes que se muestran en el navegador Chrome
- make-default-browser: hace que Chrome sea el navegador predeterminado
- versión : imprime la versión del navegador Chrome
- disable-infobars: evita que Chrome muestre la notificación 'Chrome está siendo controlado por software automatizado
En este tutorial, aprenderá
- ¿Qué es la clase de Opciones de Chrome?
- Clase de capacidades deseadas
- Opciones de Chrome para la extensión Adblocker
- Opciones de Chrome para el modo incógnito
- Opciones de cromo para cromo sin cabeza
Clase de capacidades deseadas
La clase de capacidades deseada se usa para modificar múltiples propiedades del controlador web. La clase Capacidades deseadas proporciona un conjunto de pares clave-valor para cambiar las propiedades individuales del controlador web, como el nombre del navegador, la plataforma del navegador, etc. El método más utilizado de la clase Capacidades deseadas es el método setCapability. Las capacidades deseadas se utilizan con mayor frecuencia con Selenium Grid, donde el mismo caso de prueba debe ejecutarse en diferentes navegadores.
Ejemplo:
El siguiente ejemplo muestra la forma de permitir que el navegador Chrome acepte certificados SSL en sitios web de forma predeterminada utilizando la clase Capacidades deseadas.
// Cree un objeto de la clase de capacidades deseada con el controlador de ChromeDesiredCapabilities SSLCertificate = DesiredCapabilities.chrome ();// Establecer la capacidad predefinida - ACCEPT_SSL_CERTS valor en verdaderoSSLCertificate.setCapability (CapabilityType.ACCEPT_SSL_CERTS, verdadero);// Abra una nueva instancia del controlador de Chrome con la capacidad deseadaControlador WebDriver = nuevo ChromeDriver (SSLCertificate);
A continuación, se muestran los tipos de capacidad predefinidos más utilizados.
Nombre de capacidad | Descripción |
ACCEPT_SSL_CERTS | Esta propiedad le dice al navegador que acepte certificados SSL de forma predeterminada |
PLATFORM_NAME | Esta propiedad se utiliza para configurar la plataforma del sistema operativo que se utiliza para acceder al sitio web. |
BROWSER_NAME | Esta propiedad se utiliza para establecer el nombre del navegador para una instancia de controlador web. |
VERSIÓN | Esta propiedad se utiliza para configurar la versión del navegador. |
Opciones de Chrome para la extensión Adblocker
La extensión Adblocker del navegador Chrome se puede manejar usando la clase Opciones de Chrome y Capacidades deseadas. A continuación se muestran los pasos para acceder a la extensión AdBlocker en el navegador Chrome usando la clase de Capacidades Deseadas.
Paso 1) La extensión AdBlocker debe instalarse en el navegador Chrome antes de usar la clase Opciones de Chrome
Paso 2) Extraiga el archivo CRX correspondiente a la extensión AdBlocker a través de http://crxextractor.com/
Paso 3) Pase la ruta del archivo CRX descargado a la clase Opciones de Chrome
Paso 4) Cree una instancia del controlador web utilizando la clase de capacidades deseadas y el objeto de opciones de Chrome
Ejemplo:
El siguiente ejemplo demuestra cómo activar la extensión del bloqueador de anuncios en el navegador Chrome usando la clase Opciones de Chrome y Capacidades deseadas.
Opciones de ChromeOptions = new ChromeOptions ();options.addExtensions (archivo nuevo ("Ruta al archivo CRX"));Capacidades DesiredCapabilities = new DesiredCapabilities ();Capacity.setCapability (ChromeOptions.CAPABILITY, opciones);Controlador ChromeDriver = nuevo ChromeDriver (capacidades);
Extraer archivo CRX:
Los pasos siguientes demuestran el proceso de extracción de archivos CRX a través del bloqueador de anuncios a través del sitio web: http://crxextractor.com/
Paso 1) Vaya a http://crxextractor.com/ y haga clic en el botón de inicio
Paso 2) Ingrese la extensión de Chrome - URL del bloqueador de anuncios debajo del cuadro de texto. La URL de Adblock en la tienda web de Chrome es https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
y haga clic en Aceptar
Paso 3) Al hacer clic en el botón Aceptar, la etiqueta del botón cambiará a Obtener .CRX como se muestra a continuación. Haga clic en el botón Obtener .CRX, se descargará el archivo CRX correspondiente a la extensión
Paso 4) Guarde el archivo en la máquina local, tome nota de la ruta guardada. El siguiente paso es pasar la ruta guardada a la clase Opciones de Chrome
Código de muestra:
- Verá anuncios en http://demo.guru99.com/ como se muestra a continuación
- Con la extensión AdBlocker habilitada en el navegador Chrome, los anuncios deben estar deshabilitados
paquete de adblock;import java.io.File;importar org.openqa.selenium.chrome.ChromeDriver;importar org.openqa.selenium.chrome.ChromeOptions;importar org.openqa.selenium.remote.DesiredCapabilities;public class AdblockDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Opciones de ChromeOptions = new ChromeOptions ();options.addExtensions (new File ("X: //extension_3_40_1_0.crx"));Capacidades DesiredCapabilities = new DesiredCapabilities ();Capacity.setCapability (ChromeOptions.CAPABILITY, opciones);options.merge (capacidades);Controlador ChromeDriver = nuevo ChromeDriver (opciones);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maximizar ();//driver.quit ();}}
Explicación del código:
- Inicialmente, debe establecer la ruta al archivo chromedriver.exe utilizando el método set property, ya que está utilizando el navegador Chrome para realizar pruebas.
- Debe establecer la ruta al archivo CRX para agregar el método de extensiones
- Luego, debe crear un objeto de la clase de capacidades deseada y pasarlo a la instancia del controlador web. A partir de la versión Selenium 3.8.1, la clase de capacidades del controlador está en desuso y debe fusionar el objeto de capacidades con el objeto de Opciones de Chrome antes de pasar lo mismo como argumento al constructor del controlador de Chrome
- Abra la URL: http://demo.guru99.com/test/simple_context_menu.html con la extensión Ad Blocker habilitada
- Maximizar y cerrar el navegador
NOTA: Estamos habilitando la extensión AdBlocker en el navegador Chrome a través de un script de automatización en lugar de habilitar manualmente la extensión Adblocker en el navegador Chrome. El archivo CRX es una forma de acceder a la extensión del bloqueador de anuncios mediante un script de automatización
Producción:
El navegador Chrome se habilitará con la extensión AdBlocker habilitada como se muestra a continuación sin ningún anuncio
Opciones de Chrome para el modo incógnito
Las opciones de Chrome se pueden utilizar para el modo incógnito mediante el argumento predefinido: incógnito .
A continuación se muestra el código de muestra para lograr lo mismo.
Código de muestra:
prueba de paquete;import java.io.File;importar org.openqa.selenium.chrome.ChromeDriver;importar org.openqa.selenium.chrome.ChromeOptions;importar org.openqa.selenium.remote.DesiredCapabilities;clase pública de incógnito {public static void main (String [] args) {// TODO código auxiliar de método generado automáticamenteSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Opciones de ChromeOptions = new ChromeOptions ();options.addArguments ("- incógnito");Capacidades DesiredCapabilities = new DesiredCapabilities ();Capacity.setCapability (ChromeOptions.CAPABILITY, opciones);options.merge (capacidades);Controlador ChromeDriver = nuevo ChromeDriver (opciones);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maximizar ();//driver.quit ();}}
Explicación del código :
- Inicialmente, debe establecer la ruta al archivo chromedriver.exe utilizando el método set property, ya que está utilizando el navegador Chrome para realizar pruebas.
- Luego, debe crear un objeto de la clase Opciones de Chrome y pasarlo a la instancia del controlador web. Como queremos abrir el navegador Chrome en modo incógnito, debe pasar el argumento -incognito a la clase Opciones de Chrome.
- A continuación, cree un objeto de la clase Capacidades deseadas y combine el objeto de la clase Capacidades deseadas con el objeto de la clase Opciones de Chrome utilizando el método de combinación
- Debe crear un objeto de la clase Controlador de Chrome y pasar el objeto Opciones de Chrome como argumento
- Finalmente, necesitamos pasar la URL - http://demo.guru99.com/test/simple_context_menu.html al método driver.get
- Maximizar y cerrar el navegador
Producción:
La ventana del navegador Chrome se abrirá en modo incógnito como se muestra a continuación
Opciones de cromo para cromo sin cabeza
Un navegador sin cabeza se ejecuta en segundo plano. No verá la GUI del navegador ni las operaciones que se hayan realizado en él.
Las opciones de Chrome para ejecutar el navegador Chrome en modo sin cabeza se pueden lograr utilizando los argumentos predefinidos: sin cabeza .
El código de muestra para lograrlo se menciona a continuación.
Ejemplo:
prueba de paquete;import java.io.File;importar org.openqa.selenium.chrome.ChromeDriver;importar org.openqa.selenium.chrome.ChromeOptions;importar org.openqa.selenium.remote.DesiredCapabilities;public class HeadlessModeDemo {public static void main (String [] args) {// TODO código auxiliar de método generado automáticamenteSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Opciones de ChromeOptions = new ChromeOptions ();options.addArguments ("- sin cabeza");Capacidades DesiredCapabilities = new DesiredCapabilities ();Capacity.setCapability (ChromeOptions.CAPABILITY, opciones);options.merge (capacidades);Controlador ChromeDriver = nuevo ChromeDriver (opciones);driver.get ("http://demo.guru99.com/");driver.manage (). window (). maximizar ();Título de cadena = driver.getTitle ();System.out.println ("Título de la página: + título);driver.quit ();}}
Explicación del código :
- Inicialmente, debe establecer la ruta al archivo chromedriver.exe utilizando el método set property, ya que está utilizando el navegador Chrome para realizar pruebas.
- A continuación, cree un objeto de la clase Opciones de Chrome y páselo a la instancia del controlador web. Dado que queremos abrir el navegador Chrome en modo sin cabeza, debemos pasar el argumento -headless a la clase Opciones de Chrome.
- Cree un objeto de la clase Capacidades deseadas y combine el objeto de la clase Capacidades deseadas con el objeto de la clase Opciones de Chrome utilizando el método de combinación
- Cree un objeto de la clase Controlador de Chrome y pase el objeto Opciones de Chrome como argumento
- Finalmente, necesitamos pasar la URL - http://demo.guru99.com/ al método driver.get
- Imprime el título de la página y cierra el navegador
Producción
El navegador no será visible para el código anterior, ya que Chrome funcionará en modo Headless. El título de la página se obtendrá y se mostrará como se muestra a continuación.
Resumen:
- La clase de opciones de Chrome se usa para manipular varias propiedades del controlador de Chrome
- La clase Capacidades deseadas proporciona un conjunto de pares clave-valor para modificar propiedades individuales del controlador web, como el nombre del navegador, la plataforma del navegador, etc.
- Para manipular cualquier extensión del navegador Chrome, se debe extraer el archivo CRX correspondiente a la extensión y agregarlo a la clase Opciones de Chrome
- --incognito y -headless son argumentos predefinidos proporcionados por la clase de Opciones de Chrome para usar el navegador Chrome en modo incógnito y modo sin cabeza