Capacidades desejadas em Selenium webdriver

⚡ Resumo Inteligente

As capacidades desejadas são uma Selenium Classe que armazena configurações de navegador, plataforma e dispositivo como pares de chave-valor, permitindo que um único conjunto de testes seja utilizado em diversos ambientes. Selenium Grid, grids em nuvem e automação móvel.

  • 🔘 Definição: Pares de chave-valor que nomeiam o navegador, a versão, a plataforma e o caminho do driver.
  • ☑️ Objetivo: Um único pacote de soluções funciona em diversos navegadores, sistemas operacionais e dispositivos móveis.
  • ✅ Métodos: setCapability(), getCapability(), setBrowserName(), setVersion() e setPlatform() descrevem o ambiente.
  • 🧪 Exemplo: O passo a passo do Internet Explorer reproduz o erro de caminho do driver e sua solução.
  • 🛠️ Equivalente moderno: Selenium A versão 4 contém as mesmas configurações nas classes Options do navegador.

Capacidades desejadas em Selenium webdriver

O que são capacidades desejadas?

Capacidades Desejadas é uma classe em Selenium usado para definir propriedades de navegadores para realizar testes entre navegadores de aplicativos da web. Ele armazena os recursos como pares de valores-chave e esses recursos são usados ​​para definir propriedades do navegador, como nome do navegador, versão do navegador, caminho do driver do navegador no sistema, etc., para determinar o comportamento do navegador em tempo de execução.

  • A capacidade desejada também pode ser usada para configurar a instância do driver do Selenium WebDriver.
  • Podemos configurar a instância do driver como FirefoxDriver, ChromeDriver, InternetExplorerDriver usando os recursos desejados.

Nota de versão: Selenium 4 substitui DesiredCapabilities pelas classes Options do navegador — ChromeOptions, FirefoxOpções, EdgeOptions, InternetExplorerOptions. Os exemplos abaixo mantêm a sintaxe original.

Por que precisamos das capacidades desejadas?

As capacidades desejadas são necessárias porque cada Testes cenário deve ser executado em algum ambiente de teste específico. O ambiente de teste pode ser um navegador da web, Mobile dispositivo, emulador móvel, simulador móvel, etc. A classe Desired Capabilities nos ajuda a informar ao WebDriver qual ambiente usaremos em nosso script de teste.

O método setCapability da classe DesiredCapabilities, explicado mais adiante nesta página, pode ser usado em Selenium Grade. É usada para realizar uma execução paralela em diferentes configurações de máquina.

Exemplo: Grade (mostrada abaixo).

Selenium Configuração da rede orientada pelas capacidades desejadas.

É usado para definir as propriedades do navegador (Ex. Chrome, IE), Nome da Plataforma (Ex. Linux, Windows) que são usados ​​durante a execução do Caso de teste.

No caso da automação móvel, como realizamos os testes em diferentes variedades de dispositivos móveis, a Plataforma Móvel (ex. iOS, Android) Versão da plataforma (Ex. 3.x,4.x em Android) Pode ser configurado.

O exemplo de emulador abaixo mostra a plataforma definida como Android e a versão da plataforma definida como Ice Cream Sandwich (4.x).

As funcionalidades do emulador móvel estão definidas para Android plataforma e versão 4.x

Os recursos desejados são mais úteis em casos como:

  • Na automação de aplicativos móveis, onde as propriedades do navegador e do dispositivo podem ser definidas.
  • In Selenium Grid quando queremos executar os casos de teste em um navegador diferente, com sistemas operacionais e versões diferentes.

Tipos de métodos de capacidades desejadas

Aqui veremos os diferentes métodos de Desired Capabilities e como usar um deles, o método setCapability().

#1) getBrowserName()

public java.lang.String getBrowserName()

#2) setBrowserName()

public void setBrowserName(java.lang.String browserName)

#3) getVersão()

public java.lang.String getVersion()

#4) setVersão()

public void setVersion(java.lang.String version)

#5) getPlataforma()

public Platform getPlatform()

#6)setPlataforma()

public Platform setPlatform()

#7) Método getCapability()

O método getCapability() da classe DesiredCapabilities pode ser usado para obter o recurso que está em uso atualmente no sistema.

public java.lang.Object getCapability(java.lang.String capabilityName)

# 8) Método setCapability()

O método setCapability() da classe Desired Capabilities é usado para definir as propriedades de um ambiente de teste, como nome do dispositivo, nome e versão do sistema operacional, nome e versão do navegador e caminho absoluto do aplicativo em teste (o arquivo .apk do aplicativo). Android aplicativo em teste), atividade do aplicativo (em Android) e appPackage (em Java).

“Método setCapability” em Java tem as declarações abaixo:

setCapability : public void setCapability(java.lang.String capabilityName,boolean value)
setCapability  :public void setCapability(java.lang.String capabilityName,java.lang.String value)
setCapability  :public void setCapability(java.lang.String capabilityName,Platform value)
setCapability  :public void setCapability(java.lang.String key,java.lang.Object value)

Definir capacidade em Selenium Exemplo

Vamos considerar um exemplo em que queremos executar nosso caso de teste no navegador Internet Explorer para abrir o site www.gmail.com usando Selenium WebDriver.

A seguir está o código.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {
  
WebDriver driver = new InternetExplorerDriver();
 driver.manage().window().maximize();
 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

Agora execute este código de Eclipse e confira o console.

Saída:

O código acima gerará o seguinte erro ao ser executado. O erro ocorre porque o caminho para o driver do navegador (IE, no caso acima) não está definido. O navegador não pôde ser localizado pelo... Selenium código.

The path to the driver executable must be set by the webdriver.ie.driver system property; formore information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list

Dec 11, 201212:59:43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib

WARNING: This method of starting the IE driver is deprecated and will be removed in selenium 2.26. Please download the IEDriverServer.exe from http://code.google.com/p/selenium/downloads/list and ensure that it is in your PATH.

Solução:

A solução para o problema acima é fornecida na seção de aviso do próprio erro.

  1. Baixe o servidor autônomo Internet ExplorerDriver para 32 ou 64 bits.
  2. Salve o driver em um local adequado no sistema.
  3. Defina o caminho para o driver usando o método System.setProperty. Ele é usado para configurar o driver do Internet Explorer com a propriedade webdriver. Isso ajuda a localizar o arquivo executável do driver que está armazenado no diretório do sistema. (Exemplo: "C:\IEDriverLocation\IEDriver.exe")

Nota de versão: Selenium A versão 4.6 e posteriores resolvem o driver automaticamente através de Selenium Portanto, o método `System.setProperty` é opcional. O código histórico abaixo permanece inalterado.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {

//it is used to define IE capability 
 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
  
capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE");
capabilities.setCapability(InternetExplorerDriver.
  INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);


System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe");
  
 //it is used to initialize the IE driver
 WebDriver driver = new InternetExplorerDriver(capabilities);
  
 driver.manage().window().maximize();

 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

Code Explicação:

No código acima,

  • As instruções de importação importam os pacotes necessários para o Selenium WebDriver, os pacotes necessários para o driver do Internet Explorer e os pacotes para as funcionalidades desejadas.
  • setCapability utiliza vários recursos como variáveis ​​de entrada que são então usadas pelo driver da web para iniciar o aplicativo no ambiente desejado.
  • O método `setProperty` é usado para definir o caminho onde o driver está localizado. O WebDriver então localiza o driver necessário.
  • Gmail O site é aberto no navegador Internet Explorer usando o método "get".

Saída:

O caso de teste no navegador Internet Explorer será executado com sucesso usando Selenium WebDriver.

Perguntas Frequentes

Permanece para fins de compatibilidade com versões anteriores, mas é efetivamente um recurso legado. Selenium O protocolo 4 encaminha sessões através de objetos Options do navegador compatíveis com W3C, portanto, novos conjuntos de ferramentas devem preferir Options.

Opções do Chrome, FirefoxOptions, EdgeOptions, SafariOptions e InternetExplorerOptions. Cada objeto é passado diretamente para o construtor do driver correspondente ou para o RemoteWebDriver.

Apenas browserName, browserVersion, platformName, acceptInsecureCerts, pageLoadStrategy, proxy, timeouts e unhandledPromptBehavior são padrão. Qualquer outra configuração requer um prefixo de fornecedor, como goog:chromeOptions.

Appium Espera-se que os parâmetros platformName, automationName, deviceName e app ou appPackage, além de appActivity, sejam eles escritos com o prefixo appium:.

Não. De Selenium 4.6, Selenium Manager Baixa automaticamente o driver correspondente. Configure-o apenas ao fixar uma versão específica do driver.

Os fornecedores de nuvem leem os mesmos pares de chave-valor para alocar um navegador, sistema operacional e dispositivo, além de extras com prefixo do fornecedor, como o nome da versão.

Os modelos de IA extraem dados analíticos da produção e do histórico de defeitos para classificar quais combinações de navegador, versão e dispositivo merecem cobertura, reduzindo uma matriz incontrolável.

Copilot O sistema gera blocos de recursos rapidamente, mas frequentemente sugere a sintaxe obsoleta de DesiredCapabilities aprendida em códigos antigos, portanto, revise cada linha gerada.

Resuma esta postagem com: