Capacità desiderate in Selenium webdriver

Che cosa sono le capacità desiderate?

Capacità desiderate è una classe in Selenium utilizzato per impostare le proprietà dei browser per eseguire test tra browser di applicazioni web. Memorizza le funzionalità come coppie chiave-valore e queste funzionalità vengono utilizzate per impostare le proprietà del browser come nome del browser, versione del browser, percorso del driver del browser nel sistema, ecc. per determinare il comportamento del browser in fase di esecuzione.

  • La funzionalità desiderata può essere utilizzata anche per configurare l'istanza del driver di Selenium WebDriver.
  • Possiamo configurare l'istanza del driver come FirefoxDriver, ChromeDriver, InternetExplorerDriver utilizzando le funzionalità desiderate.

Perché abbiamo bisogno delle capacità desiderate?

Capacità desiderate sono necessari perché ogni Testing lo scenario dovrebbe essere eseguito su un ambiente di test specifico. L'ambiente di test può essere un browser web, Mobile dispositivo, emulatore mobile, simulatore mobile, ecc. La classe Desired Capabilities ci aiuta a dire al webdriver quale ambiente utilizzeremo nel nostro script di test.

. metodo setCapability della classe DesiredCapabilities, che viene spiegata nella parte successiva del tutorial, può essere utilizzata in Selenium Griglia. Viene utilizzato per eseguire un'esecuzione parallela su diverse configurazioni di macchina.

Esempio: griglia

Capacità desiderate in Selenium webdriver

Viene utilizzato per impostare le proprietà del browser (Es. Chrome, IE), Nome della piattaforma (Es. Linux, Windows) che vengono utilizzati durante l'esecuzione dei casi di test.

Nel caso dell'automazione mobile, poiché eseguiamo i test su diverse varietà di dispositivi mobili, la piattaforma mobile (es. iOS, Android) Versione piattaforma (Es. 3.x,4.x pollici Android) può essere impostato.

Capacità desiderate in Selenium webdriver

L'esempio dell'emulatore sopra mostra il set di piattaforme che è Android e il set di versioni della piattaforma che è IceCream Sandwich (4.x).

Le capacità desiderate sono più utili in casi come:

  • Nell'automazione delle applicazioni mobili, dove è possibile impostare le proprietà del browser e del dispositivo.
  • In Selenium griglia quando vogliamo eseguire i casi di test su un browser diverso con sistemi operativi e versioni differenti.

Tipi di capacità desiderate Metodi

Qui vedremo un diverso tipo di metodi con le funzionalità desiderate e vedremo come utilizzare uno di questi metodi “metodo setCapability”.

#1) getNomeBrowser()

public java.lang.String getBrowserName()

#2) setNomeBrowser()

public void setBrowserName(java.lang.String browserName)

#3) getVersione()

public java.lang.String getVersion()

#4) setVersione()

public void setVersion(java.lang.String version)

#5) getPlatform()

public Platform getPlatform()

#6) setPlatform()

public Platform setPlatform()

#7) Metodo getCapability()

Il metodo getCapability() della classe DesiredCapabilities può essere utilizzato per ottenere la funzionalità attualmente in uso nel sistema.

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

#8) Metodo setCapability()

. metodo setCapability() della classe Desired Capabilities viene utilizzata per impostare la proprietà di un ambiente di test come nome del dispositivo, nome e versione del sistema operativo, nome e versione del browser, percorso assoluto dell'app sotto test (il file .apk del Android app in prova), Attività app (in Android) e appPackage(in Java).

“metodo setCapability” in Java ha le seguenti dichiarazioni:

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)

Imposta Capacità in Selenium Esempio

Consideriamo un esempio in cui vogliamo eseguire il nostro file Test Case sul browser Internet Explorer per aprire il sito web www.gmail.com utilizzando Selenium Webdriver.

Di seguito il codice.

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();
 }
  
}

Ora esegui questo codice da Eclipse e controlla la console.

Produzione:

Verrà generato il seguente errore quando viene eseguito il codice sopra. L'errore si verifica perché il percorso al driver del browser (IE nel caso sopra) non è impostato. Il browser non è stato individuato dal codice selenio.

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.

Soluzione:

La soluzione al problema di cui sopra è fornita nella sezione di avviso dell'errore stesso.

  • Scarica il server autonomo Internet ExplorerDriver per 32 bit o 64 bit.
  • Salvare il driver in una posizione adatta nel sistema.
  • Impostare il percorso per il driver utilizzando il file System.setProperty metodo.
  • Viene utilizzato per impostare il driver IE con la proprietà webdriver. Aiuta a individuare il file eseguibile del driver archiviato nella posizione del sistema. (Es: "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();
 }
  
}

Spiegazione del codice:

Nel codice sopra,

  • Le istruzioni di importazione servono per importare i pacchetti richiesti per il driver Web selenium, i pacchetti richiesti per il driver Internet Explorer, i pacchetti per le funzionalità desiderate.
  • setCapability prende le varie funzionalità come variabili di input che vengono poi utilizzate dal driver web per avviare l'applicazione nell'ambiente desiderato.
  • setProperty viene utilizzato per impostare il percorso in cui si trova il driver. Web Driver individua quindi il driver richiesto.
  • Il sito web di Gmail viene aperto nel browser Internet Explorer utilizzando il metodo "get".

Produzione:

Il test case sul browser Internet Explorer verrà eseguito correttamente utilizzando Selenium Webdriver.

Conclusione

La classe Desired Capabilities aiuterà a impostare un ambiente per definire il comportamento del browser/ambiente su cui può essere eseguito il test.

Aiuta a lanciare la nostra applicazione nell'ambiente desiderato con le funzionalità che desideriamo utilizzare.