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.
Por que precisamos das capacidades desejadas?
Capacidades Desejadas sรฃo necessรกrios 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.
As Mรฉtodo setCapability da classe DesiredCapabilities, que รฉ explicada na parte posterior do tutorial, pode ser usada em Selenium Grade. ร usado para realizar uma execuรงรฃo paralela em diferentes configuraรงรตes de mรกquina.
Ex: Grade
ร usado para definir as propriedades do navegador (Ex. Chrome, IE), Nome da Plataforma (Ex. Linux, Windows) que sรฃo usados โโdurante a execuรงรฃo dos casos 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 do emulador acima mostra o conjunto de plataforma que รฉ Android e o conjunto de versรฃo da plataforma que รฉ IceCream 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 diferentes sistemas operacionais e versรตes.
Tipos de mรฉtodos de capacidades desejadas
Aqui veremos um tipo diferente de mรฉtodos de capacidades desejadas e como usar um desses mรฉtodos โ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()
As Mรฉtodo setCapability() da classe Desired Capabilities รฉ usada para definir a propriedade de um ambiente de teste, como nome do dispositivo, nome e versรฃo do sistema operacional, nome e versรฃo do navegador, caminho absoluto do aplicativo em teste (o arquivo .apk do Android aplicativo em teste), atividade do aplicativo (em Android) e appPackage(em Java).
โMรฉtodo setCapabilityโ in 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 onde queremos executar nosso Caso de teste no navegador Internet Explorer para abrir o site www.gmail.com usando Selenium Driver da Web.
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:
Irรก gerar o seguinte erro quando o cรณdigo acima for 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 cรณdigo Selenium.
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 Propriedade System.set mรฉtodo.
- ร usado para definir o driver do IE com a propriedade webdriver. Ajuda a localizar o arquivo executรกvel do driver armazenado no local do sistema. (Ex:โC:\IEDriverLocation\IEDriver.exeโ)
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 servem para importar os pacotes necessรกrios para o driver da web Selenium, pacotes necessรกrios para o driver do Internet Explorer, pacotes para os recursos desejados.
- 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.
- setProperty รฉ usado para definir o caminho onde o driver estรก localizado. O Web Driver 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 Driver da Web.
Conclusรฃo
A classe Desired Capabilities ajudarรก a definir um ambiente para definir o comportamento do navegador/ambiente no qual o teste pode ser executado.
Ajuda a lanรงar nosso aplicativo no ambiente desejado com os recursos que desejamos usar.


