Os recursos são opções que podem ser usadas para personalizar e configurar uma sessão do ChromeDriver. Esta página documenta todos os recursos com suporte do ChromeDriver e como usá-los.
As APIs de linguagem do WebDriver oferecem maneiras de transmitir recursos para o ChromeDriver. O mecanismo exato varia de acordo com o idioma, mas a maioria usa um ou ambos os seguintes mecanismos:
- Use a classe
ChromeOptions
. Isso é compatível com Java, Python etc. - Use a classe
DesiredCapabilities
. Isso é compatível com Python, Ruby etc. Embora também esteja disponível no Java, o uso dele no Java foi descontinuado.
Como usar a classe ChromeOptions
É possível criar uma instância de ChromeOptions
, que tem métodos convenientes para definir recursos específicos do ChromeDriver. Em seguida, transmita o objeto ChromeOptions
para o construtor do ChromeDriver:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Desde a versão 3.6.0 do Selenium, a classe ChromeOptions
em Java também implementa
a interface Capabilities
, permitindo que você especifique outros recursos do WebDriver
que não são específicos do ChromeDriver.
ChromeOptions options = new ChromeOptions();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);
// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Usar DesiredCapabilities
Para usar DesiredCapabilities
, você precisa saber o nome do capability e
o tipo de valor que ele usa. Confira a lista completa.
Python
caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)
Ruby
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
Casos de uso comuns
Usar um perfil personalizado
Por padrão, o ChromeDriver cria um novo perfil temporário para cada sessão. Você pode definir preferências especiais ou usar um perfil personalizado, também chamado de diretório de dados do usuário.
Se você estiver usando o perfil temporário, use o recurso chrome.prefs
para
especificar as preferências que serão aplicadas após a inicialização do Chrome. Para perfis personalizados, use
a chave de linha de comando user-data-dir
do Chrome para informar qual perfil
usar:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Crie seu próprio perfil personalizado executando o Chrome na linha de comando ou
com o ChromeDriver, usando a chave user-data-dir
definida para algum novo diretório.
Se o caminho não existir, o Chrome vai criar um novo perfil no local
especificado. Você pode modificar as configurações do perfil, e o ChromeDriver pode usar
o perfil no futuro. Abra chrome://version
no navegador para saber qual
perfil o Chrome está usando.
Iniciar o Chrome maximizado
Inicie o Chrome maximizado usando a chave start-maximized
:
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Usar um executável do Chrome em um local não padrão
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Janelas de diálogo de bloqueio
Por padrão, o ChromeDriver configura o Chrome para permitir janelas pop-up. Se você quiser bloquear pop-ups e restaurar o comportamento normal do Chrome quando ele não for controlado pelo ChromeDriver, faça o seguinte:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
Definir o diretório de download
O código abaixo pode ser usado para configurar o Chrome para fazer o download de arquivos em um diretório específico. No entanto, há várias ressalvas a serem consideradas:
- O Chrome não permite o uso de determinados diretórios para download. Não é possível usar a pasta do computador como o diretório de download. No Linux, não é possível usar o diretório principal para fazer o download. A lista exata de diretórios proibidos está sujeita a mudanças. Por isso, recomendamos que você use um diretório exclusivo que não tenha um significado especial para o sistema.
- O ChromeDriver não espera automaticamente a conclusão do download. Se você chamar
driver.quit()
muito cedo, o Chrome poderá ser encerrado antes do término do download. - Para melhores resultados, use caminhos completos, já que os caminhos relativos nem sempre funcionam.
- No Windows, use
\` as path separators.
/` não é confiável no Windows.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Recursos reconhecidos
Leia a documentação do Selenium e o padrão W3C WebDriver para conhecer os recursos padrão aceitos pelo ChromeDriver. Aqui, listamos os recursos específicos do Chrome.
Objeto ChromeOptions
A maioria dos recursos específicos do Chrome são expostos pelo objeto
ChromeOptions
. Em alguns idiomas, eles são implementados pela classe ChromeOptions
. Em
outros idiomas, elas são armazenadas no dicionário goog:chromeOptions
em
recursos selecionados.
Objeto perfLoggingPrefs
O dicionário perfLoggingPrefs
tem o seguinte formato. Todas as chaves são opcionais:
Recursos retornados
Esta é uma lista de todos os recursos retornados específicos do Chrome, ou seja, o que o ChromeDriver retorna quando você cria uma nova sessão.