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.
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).
É 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).
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.
- Baixe o servidor autônomo Internet ExplorerDriver para 32 ou 64 bits.
- Salve o driver em um local adequado no sistema.
- 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.


