Capacidades desejadas no Selenium WebDriver

Índice:

Anonim

Capacidades Desejadas

Desired Capabilities é uma classe no Selenium usada para definir propriedades de navegadores para realizar testes de aplicativos da web em vários navegadores. Ele armazena os recursos como pares chave-valor 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.

Neste tutorial, você aprenderá-

  • O que é capacidade desejada?
  • Por que precisamos das capacidades desejadas?
  • Diferentes tipos de métodos de capacidades desejadas
  • Exemplo para definir o método de capacidade

Por que precisamos das capacidades desejadas?

Os recursos desejados são necessários porque cada cenário de teste deve ser executado em algum ambiente de teste específico. O ambiente de teste pode ser um navegador da web, dispositivo móvel, emulador móvel, simulador móvel, etc. A classe de recursos desejados nos ajuda a informar ao webdriver qual ambiente usaremos em nosso script de teste.

O método setCapability da classe DesiredCapabilities, que é explicado na parte posterior do tutorial, pode ser usado no Selenium Grid. É 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, à medida que realizamos os testes em diferentes variedades de dispositivos móveis, a versão da plataforma da plataforma móvel (ex. IOS, Android) (ex. 3.x, 4.x no Android) pode ser definida.

O exemplo de emulador acima mostra o conjunto de plataforma que é android e o conjunto de versão da plataforma que é IceCream Sandwich (4.x).

As capacidades desejadas são mais úteis em casos como:

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

Diferentes tipos de métodos de capacidades desejadas

Aqui veremos um tipo diferente de métodos de recursos desejados e veremos como usar um dos métodos " SetCapability Method".

  1. getBrowserName ()
public java.lang.String getBrowserName ()
  1. setBrowserName ()
public void setBrowserName (java.lang.String browserName)
  1. getVersion ()
public java.lang.String getVersion ()
  1. setVersion ()
public void setVersion (versão java.lang.String)
  1. getPlatform ()
public Platform getPlatform ()
  1. setPlatform ()
public Platform setPlatform ()
  1. 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 capacityName)
  1. Método setCapability ()

O método setCapability () da classe Desired Capabilities é usado 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 aplicativo Android em teste), atividade do aplicativo (no Android) e appPackage (no Java).

O "método setCapability" em Java tem as declarações abaixo:

setCapability: public void setCapability (java.lang.String capacityName, valor booleano)
setCapability: public void setCapability (java.lang.String capacityName, java.lang.String value)
setCapability: public void setCapability (java.lang.String capacityName, Platform value)
setCapability: public void setCapability (java.lang.String key, java.lang.Object value)

Exemplo para definir o método de capacidade

Vamos considerar um exemplo em que queremos executar nosso caso de teste no navegador Internet Explorer para abrir o site www.gmail.com usando o 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) {Driver WebDriver = novo InternetExplorerDriver ();driver.manage (). window (). maximize ();driver.get ("http://gmail.com");driver.quit ();}}

Agora execute este código do Eclipse e verifique o console.

Resultado:

Ele lançará 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 de selênio.

O caminho para o executável do driver deve ser definido pela propriedade de sistema webdriver.ie.driver; para obter mais informações, consulte http://code.google.com/p/selenium/wiki/InternetExplorerDriver. A versão mais recente pode ser baixada em http://code.google.com/p/selenium/downloads/list

11 de dezembro de 201212: 59: 43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib

AVISO: Este método de iniciar o driver do IE está obsoleto e será removido no selenium 2.26. Faça download do IEDriverServer.exe em http://code.google.com/p/selenium/downloads/list e certifique-se de que está em seu 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 do Internet ExplorerDriver para 32 bits ou 64 bits.
  • Salve o driver em um local adequado no sistema.
  • Defina o caminho para o driver usando o método System.setProperty .
  • É usado para definir o driver do IE com a propriedade webdriver. Isso 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) {// é usado para definir a capacidade do IECapacidades DesiredCapabilities = DesiredCapabilities.internetExplorer ();resources.setCapability (CapabilityType.BROWSER_NAME, "IE");resources.setCapability (InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, verdadeiro);System.setProperty ("webdriver.ie.driver", "C: \\ IEDriverServer.exe");// é usado para inicializar o driver do IEDriver WebDriver = novo InternetExplorerDriver (recursos);driver.manage (). window (). maximize ();driver.get ("http://gmail.com");driver.quit ();}}

Explicação do código:

No código acima,

  • As instruções de importação são 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 leva os vários recursos como variáveis ​​de entrada que são então usados ​​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 então localiza o driver necessário.
  • O site do Gmail é aberto no navegador Internet Explorer usando o método "get".

Resultado:

O caso de teste no navegador Internet explorer será executado com êxito usando o Selenium Webdriver.

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.

Isso ajuda a lançar nosso aplicativo no ambiente desejado, tendo os recursos que desejamos usar.

Este artigo é uma contribuição de Krithika Ramkumar