Opções do Chrome & Capacidades desejadas: AdBlocker, Incognito, Headless

Índice:

Anonim

O que é a aula de opções do Chrome?

A classe de opções do Chrome é usada para manipular várias propriedades do driver do Chrome. A classe de opções do Chrome é geralmente usada em conjunto com os recursos desejados.

Exemplo:

O exemplo abaixo mostra uma maneira de abrir o navegador Chrome no modo maximizado usando a classe ChromeOptions. Precisamos passar uma instância da classe ChromeOptions para a inicialização do driver da web.

ChromeOptions options = new ChromeOptions ()options.addArgument ("start-maximized");Driver ChromeDriver = novo ChromeDriver (opções);

Abaixo está a lista de argumentos disponíveis e mais comumente usados ​​para a classe ChromeOptions

  • start-maximized : abre o Chrome no modo de maximização
  • anônimo: abre o Chrome no modo anônimo
  • sem cabeça: abre o Chrome no modo sem cabeça
  • disable-extensions : Desativa as extensões existentes no navegador Chrome
  • disable-popup-blocking : Desativa os pop-ups exibidos no navegador Chrome
  • make-default-browser: Torna o navegador Chrome padrão
  • versão : imprime a versão do navegador Chrome
  • disable-infobars: evita que o Chrome exiba a notificação 'O Chrome está sendo controlado por um software automatizado

Neste tutorial, você aprenderá

  • O que é a aula de opções do Chrome?
  • Classe de capacidades desejadas
  • Opções do Chrome para extensão Adblocker
  • Opções do Chrome para modo de navegação anônima
  • Opções do Chrome para Headless Chrome

Classe de capacidades desejadas

A classe de recursos desejada é usada para modificar várias propriedades do driver da web. A classe Desired Capabilities fornece um conjunto de pares de valores-chave para alterar as propriedades individuais do driver da web, como nome do navegador, plataforma do navegador, etc. O método mais comumente usado da classe Desired Capabilities é o método setCapability. Os recursos desejados são usados ​​com mais frequência com o Selenium Grid, onde o mesmo caso de teste precisa ser executado em navegadores diferentes.

Exemplo:

O exemplo abaixo mostra a maneira de habilitar o navegador Chrome para aceitar certificados SSL em sites por padrão usando a classe Desired Capabilities.

// Crie um objeto da classe de recursos desejada com o driver do ChromeDesiredCapabilities SSLCertificate = DesiredCapabilities.chrome ();// Defina a capacidade predefinida - valor ACCEPT_SSL_CERTS para verdadeiroSSLCertificate.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true);// Abra uma nova instância do driver do Chrome com a capacidade desejadaDriver WebDriver = novo ChromeDriver (SSLCertificate);

Abaixo estão os tipos de recursos predefinidos mais comumente usados.

Nome da Capacidade Descrição
ACCEPT_SSL_CERTS Esta propriedade diz ao navegador para aceitar Certificados SSL por padrão
PLATFORM_NAME Esta propriedade é usada para definir a plataforma do sistema operacional usado para acessar o site
BROWSER_NAME Esta propriedade é usada para definir o nome do navegador para uma instância do driver da web
VERSÃO Esta propriedade é usada para definir a versão do navegador

Opções do Chrome para extensão Adblocker

A extensão Adblocker do navegador Chrome pode ser tratada usando as classes Opções do Chrome e Capacidades desejadas. Abaixo estão as etapas para acessar a extensão AdBlocker no navegador Chrome usando a classe Desired Capabilities.

Etapa 1) A extensão AdBlocker deve ser instalada no navegador Chrome antes de usar a classe Opções do Chrome

Etapa 2) Extraia o arquivo CRX correspondente à extensão AdBlocker por meio de http://crxextractor.com/

Etapa 3) Passe o caminho do arquivo CRX baixado para a classe Opções do Chrome

Etapa 4) Instancie o driver da web usando a classe de recursos desejada e o objeto de opções do cromo

Exemplo:

O exemplo abaixo demonstra como ativar a extensão do bloqueador de anúncios no navegador Chrome usando as opções de opções do Chrome e a classe de recursos desejados.

ChromeOptions options = new ChromeOptions ();options.addExtensions (new File ("Path to CRX File"));Capacidades de DesiredCapabilities = new DesiredCapabilities ();abilities.setCapability (ChromeOptions.CAPABILITY, options);Driver ChromeDriver = novo ChromeDriver (recursos);

Extrair arquivo CRX:

As etapas abaixo demonstram o processo de extração do arquivo CRX por meio do Ad Blocker por meio do site - http://crxextractor.com/

Etapa 1) Vá para http://crxextractor.com/ e clique no botão Iniciar

Etapa 2) Insira a extensão do Chrome - URL do Ad Blocker na caixa de texto. O URL para Adblock na loja on-line do Chrome é https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

e clique ok

Etapa 3) Ao clicar no botão OK, o rótulo do botão mudará para Obter .CRX conforme abaixo. Clique no botão Obter .CRX, o arquivo CRX correspondente à extensão será baixado

Etapa 4) Salve o arquivo na máquina local, anote o caminho salvo. A próxima etapa é passar o caminho salvo para a classe Opções do Chrome

Código de amostra:

  1. Você verá anúncios em http://demo.guru99.com/ conforme abaixo

  1. Com a extensão AdBlocker ativada no navegador Chrome, os anúncios devem ser desativados
pacote adblock;import java.io.File;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.chrome.ChromeOptions;import org.openqa.selenium.remote.DesiredCapabilities;public class AdblockDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");ChromeOptions options = new ChromeOptions ();options.addExtensions (new File ("X: //extension_3_40_1_0.crx"));Capacidades de DesiredCapabilities = new DesiredCapabilities ();abilities.setCapability (ChromeOptions.CAPABILITY, options);options.merge (capacidades);Driver ChromeDriver = novo ChromeDriver (opções);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maximize ();//driver.quit ();}}

Explicação do código:

  1. Inicialmente, você precisa definir o caminho para o arquivo chromedriver.exe usando o método set property, já que está usando o navegador Chrome para teste
  2. Você precisa definir o caminho para o arquivo CRX para adicionar o método de extensões
  3. Em seguida, você precisa criar um objeto da classe de recursos desejada e passá-lo para a instância do driver da web. Da versão Selenium 3.8.1, a classe de recursos do driver foi descontinuada e você precisa mesclar o objeto de recursos com o objeto Opções do Chrome antes de passar o mesmo como um argumento para o construtor do driver do Chrome
  4. Abra o URL - http://demo.guru99.com/test/simple_context_menu.html com a extensão Ad Blocker habilitada
  5. Maximize e feche o navegador

NOTA: Estamos habilitando a extensão AdBlocker no navegador Chrome por meio do script de automação, em vez de habilitar manualmente a extensão AdBlocker no navegador Chrome. O arquivo CRX é uma forma de acessar a extensão do bloqueador de anúncios usando um script de automação

Resultado:

O navegador Chrome será ativado com a extensão AdBlocker ativada conforme abaixo, sem nenhum anúncio

Opções do Chrome para modo de navegação anônima

As opções do Chrome podem ser usadas no modo incógnito usando o argumento predefinido - incógnito .

Abaixo está o código de exemplo para fazer o mesmo.

Código de amostra:

teste de pacote;import java.io.File;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.chrome.ChromeOptions;import org.openqa.selenium.remote.DesiredCapabilities;public class Incognito {public static void main (String [] args) {// TODO stub do método gerado automaticamenteSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");ChromeOptions options = new ChromeOptions ();options.addArguments ("- incógnito");Capacidades de DesiredCapabilities = new DesiredCapabilities ();abilities.setCapability (ChromeOptions.CAPABILITY, options);options.merge (capacidades);Driver ChromeDriver = novo ChromeDriver (opções);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maximize ();//driver.quit ();}}

Explicação do código :

  1. Inicialmente, você precisa definir o caminho para o arquivo chromedriver.exe usando o método set property, já que está usando o navegador Chrome para teste
  2. Em seguida, você precisa criar um objeto da classe Chrome Options e passá-lo para a instância do driver da web. Como queremos abrir o navegador Chrome no modo anônimo, você precisa passar o argumento -incognito para a classe Opções do Chrome.
  3. Em seguida, crie um objeto da classe Desired Capabilities e mescle o objeto da classe Desired Capabilities com o objeto da classe Opções do Chrome usando o método merge
  4. Você precisa criar um objeto da classe Chrome Driver e passar o objeto Chrome Options como um argumento
  5. Finalmente, precisamos passar o URL - http://demo.guru99.com/test/simple_context_menu.html para o método driver.get
  6. Maximize e feche o navegador

Resultado:

A janela do navegador Chrome será aberta no modo de navegação anônima conforme abaixo

Opções do Chrome para Headless Chrome

Um navegador sem cabeça é executado em segundo plano. Você não verá a GUI do navegador ou as operações operadas nele.

As opções do Chrome para executar o navegador Chrome no modo headless podem ser realizadas usando os argumentos predefinidos - headless .

O código de exemplo para fazer isso é mencionado abaixo.

Exemplo:

teste de pacote;import java.io.File;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.chrome.ChromeOptions;import org.openqa.selenium.remote.DesiredCapabilities;public class HeadlessModeDemo {public static void main (String [] args) {// TODO stub do método gerado automaticamenteSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");ChromeOptions options = new ChromeOptions ();options.addArguments ("- headless");Capacidades de DesiredCapabilities = new DesiredCapabilities ();abilities.setCapability (ChromeOptions.CAPABILITY, options);options.merge (capacidades);Driver ChromeDriver = novo ChromeDriver (opções);driver.get ("http://demo.guru99.com/");driver.manage (). window (). maximize ();String title = driver.getTitle ();System.out.println ("Título da página: + título);driver.quit ();}}

Explicação do código :

  1. Inicialmente, você precisa definir o caminho para o arquivo chromedriver.exe usando o método set property, já que está usando o navegador Chrome para teste
  2. Em seguida, crie um objeto da classe Chrome Options e passe-o para a instância do driver da web. Visto que queremos abrir o navegador Chrome no modo headless, precisamos passar o argumento -headless para a classe Chrome Options.
  3. Crie um objeto da classe Desired Capabilities e mescle o objeto da classe Desired Capabilities com o objeto da classe Opções do Chrome usando o método merge
  4. Crie um objeto da classe Chrome Driver e passe o objeto Chrome Options como um argumento
  5. Finalmente, precisamos passar a URL - http://demo.guru99.com/ para o método driver.get
  6. Imprima o título da página e feche o navegador

Resultado

O navegador não ficará visível para o código acima, pois o Chrome estará funcionando no modo Headless. O título da página será obtido e exibido conforme abaixo.

Resumo:

  • A classe de opções do Chrome é usada para manipular várias propriedades do driver do Chrome
  • A classe Desired Capabilities fornece um conjunto de pares de valores-chave para modificar propriedades individuais do driver da web, como nome do navegador, plataforma do navegador, etc.
  • Para manipular quaisquer extensões do navegador Chrome, o arquivo CRX correspondente à extensão deve ser extraído e adicionado à classe Opções do Chrome
  • --incognito e -headless são argumentos predefinidos fornecidos pela classe Chrome Options para usar o navegador Chrome no modo incógnito e no modo headless