Capabilitățile dorite în Selenium webdriver

⚡ Rezumat inteligent

Capacitățile dorite sunt o Selenium clasă care stochează setările browserului, platformei și dispozitivului ca perechi cheie-valoare, permițând unei singure suite de teste să vizeze mai multe medii din Selenium Grilă, grile în cloud și automatizare mobilă.

  • 🔘 Definiție: Perechi cheie-valoare care denumesc browserul, versiunea, platforma și calea driverului.
  • ☑️ Scop: O suită funcționează pe diferite browsere, sisteme de operare și dispozitive mobile.
  • Metode: setCapability(), getCapability(), setBrowserName(), setVersion() și setPlatform() descriu mediul.
  • 🧪 Exemplu: Ghidul Internet Explorer reproduce eroarea driver-path și remedierea acesteia.
  • 🛠️ Echivalent modern: Selenium 4 conține aceleași setări în clasele Opțiuni ale browserului.

Capabilitățile dorite în Selenium webdriver

Ce sunt capabilitățile dorite?

Capacitățile dorite sunt o clasă din Selenium folosit pentru a seta proprietățile browserelor pentru a efectua testarea între browsere a aplicațiilor web. Stochează capabilitățile ca perechi cheie-valoare, iar aceste capabilități sunt utilizate pentru a seta proprietățile browserului, cum ar fi numele browserului, versiunea browserului, calea driverului browserului în sistem etc. pentru a determina comportamentul browserului în timpul rulării.

  • Capacitatea dorită poate fi folosită și pentru a configura instanța driverului Selenium WebDriver.
  • Putem configura instanța de driver cum ar fi FirefoxDriver, ChromeDriver, InternetExplorerDriver utilizând capabilitățile dorite.

Notă privind versiunea: Selenium 4 înlocuiește DesiredCapabilities cu clasele de opțiuni ale browserului — ChromeOptions, FirefoxOpțiuni, EdgeOptions, InternetExplorerOptions. Exemplele de mai jos păstrează sintaxa originală.

De ce avem nevoie de capabilitățile dorite?

Capacitățile dorite sunt necesare deoarece fiecare Testarea scenariul ar trebui să fie executat pe un anumit mediu de testare. Mediul de testare poate fi un browser web, Mobil dispozitiv, emulator mobil, simulator mobil etc. Clasa Desired Capabilities ne ajută să-i spunem WebDriver-ului ce mediu vom utiliza în scriptul nostru de testare.

Metoda setCapability a clasei DesiredCapabilities, care este explicată în partea ulterioară a acestei pagini, poate fi utilizată în Selenium Grilă. Este folosită pentru a efectua o executie paralela pe diferite configurații ale mașinii.

Ex: Grilă (prezentată mai jos).

Selenium Configurarea grilei determinată de capacitățile dorite

Este folosit pentru a seta proprietățile browserului (Ex. Chrome, IE), Numele platformei (Ex. Linux, Windows) care sunt utilizate în timpul execuției Caz de testare.

În cazul automatizării mobile, pe măsură ce efectuăm testele pe diferite soiuri de dispozitive mobile, Platforma mobilă (ex. iOS, Android) Versiunea platformei (ex. 3.x, 4.x in Android) poate fi setat.

Exemplul de emulator de mai jos arată setul de platforme, care este Android, și setul de versiuni de platformă, care este IceCream Sandwich (4.x).

Capacitățile emulatorului mobil sunt setate la Android platformă și versiunea 4.x

Capabilitățile dorite sunt mai utile în cazuri precum:

  • În automatizarea aplicațiilor mobile, unde pot fi setate proprietățile browserului și proprietățile dispozitivului.
  • In Selenium Grid atunci când dorim să rulăm cazurile de testare pe un browser diferit, cu sisteme de operare și versiuni diferite.

Tipuri de capabilități dorite Metode

Aici vom vedea diferitele metode Desired Capabilities și cum se utilizează una dintre ele, metoda setCapability().

#1) getBrowserName()

public java.lang.String getBrowserName()

#2) setBrowserName()

public void setBrowserName(java.lang.String browserName)

#3) getVersion()

public java.lang.String getVersion()

#4) setVersion()

public void setVersion(java.lang.String version)

#5) getPlatform()

public Platform getPlatform()

#6) setPlatform()

public Platform setPlatform()

#7) Metoda getCapability().

Metoda getCapability() a clasei DesiredCapabilities poate fi utilizată pentru a obține capacitatea care este utilizată în prezent în sistem.

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

#8) Metoda setCapability().

Metoda setCapability() a clasei Desired Capabilities este utilizată pentru a seta proprietățile unui mediu de testare, cum ar fi numele dispozitivului, numele și versiunea sistemului de operare, numele și versiunea browserului, calea absolută a aplicației testate (fișierul .apk al aplicației). Android aplicație în curs de testare), Activitatea aplicației (în Android) și appPackage (în Java).

„metoda setCapability” în Java are următoarele declarații:

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)

Setați Capacitatea în Selenium Exemplu

Să luăm în considerare un exemplu în care dorim să rulăm cazul nostru de testare pe browserul Internet Explorer pentru a deschide site-ul web www.gmail.com folosind Selenium WebDriver.

Urmează codul.

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

Acum rulați acest cod de la Eclipse și verifică consola.

ieșire:

Va genera următoarea eroare atunci când este executat codul de mai sus. Eroarea apare deoarece calea către driverul browserului (IE în cazul de mai sus) nu este setată. Browserul nu a putut fi localizat de Selenium cod.

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ţie:

Soluția pentru problema de mai sus este dată în secțiunea de avertizare a erorii în sine.

  1. Descărcați serverul autonom Internet ExplorerDriver pentru 32 de biți sau 64 de biți.
  2. Salvați driverul într-o locație adecvată din sistem.
  3. Setați calea pentru driver utilizând metoda System.setProperty. Aceasta este utilizată pentru a seta driverul IE cu proprietatea webdriver. Ajută la localizarea fișierului executabil al driverului stocat în locația sistemului. (Ex: „C:\IEDriverLocation\IEDriver.exe”)

Notă privind versiunea: Selenium 4.6 și versiunile ulterioare rezolvă automat driverul prin Selenium Manager, deci System.setProperty este opțional. Codul istoric de mai jos este neschimbat.

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ţie:

În codul de mai sus,

  • Instrucțiunile de import importă pachetele necesare pentru Selenium WebDriver, pachetele necesare pentru driverul Internet Explorer și pachetele pentru funcționalitățile dorite.
  • setCapability ia diferitele capabilități ca variabile de intrare care sunt apoi utilizate de driverul web pentru a lansa aplicația în mediul dorit.
  • setProperty este utilizată pentru a seta calea în care se află driverul. WebDriver localizează apoi driverul necesar.
  • Gmail site-ul web este deschis în browserul Internet Explorer utilizând metoda „get”.

ieșire:

Cazul de testare pe browserul Internet Explorer va rula cu succes utilizând Selenium WebDriver.

Întrebări frecvente

Rămâne pentru compatibilitate inversă, dar este practic o versiune moștenită. Selenium 4 direcționează sesiunile prin obiecte Options ale browserului compatibile cu W3C, așadar noile suite ar trebui să prefere Options.

Opțiuni Chrome, FirefoxOptions, EdgeOptions, SafariOptions și InternetExplorerOptions. Fiecare obiect trece direct în constructorul driverului corespunzător sau în RemoteWebDriver.

Doar browserName, browserVersion, platformName, acceptInsecureCerts, pageLoadStrategy, proxy, timeouts și unhandledPromptBehavior sunt standard. Orice altceva necesită un prefix de furnizor, cum ar fi goog:chromeOptions.

Appium așteaptă valorile platformName, automationName, deviceName și fie app, fie appPackage plus appActivity, toate scrise cu prefixul appium:.

Nr. De la Selenium 4.6, Selenium Manager descarcă automat driverul corespunzător. Setați-l numai atunci când fixați o anumită versiune de driver.

Furnizorii de cloud citesc aceleași perechi cheie-valoare pentru a aloca un browser, un sistem de operare și un dispozitiv, plus extra-uri cu prefixul furnizorului, cum ar fi numele versiunii.

Modelele IA analizează producția și istoricul defectelor pentru a clasifica ce combinații de browsere, versiuni și dispozitive merită acoperite, eliminând o matrice dificil de gestionat.

Co-pilot schițează rapid blocurile de capabilități, dar sugerează adesea sintaxa depreciată DesiredCapabilities învățată din cod mai vechi, așa că revizuiți fiecare linie generată.

Rezumați această postare cu: