Ønskede evner i Selenium webdriver

⚡ Smart oppsummering

Ønskede evner er en Selenium klasse som lagrer nettleser-, plattform- og enhetsinnstillinger som nøkkelverdipar, slik at én enkelt testsuite kan målrette mange miljøer på tvers Selenium Rutenett, skynett og mobil automatisering.

  • 🔘 Definisjon: Nøkkelverdipar som navngir nettleser, versjon, plattform og driverbane.
  • ☑️ Formål: Én pakke kjører på tvers av nettlesere, operativsystemer og mobile enheter.
  • ✅ Metoder: setCapability(), getCapability(), setBrowserName(), setVersion() og setPlatform() beskriver miljøet.
  • 🧪 Eksempel: Gjennomgangen i Internet Explorer gjengir driverbanefeilen og løsningen på den.
  • 🛠️ Moderne ekvivalent: Selenium 4 har de samme innstillingene i nettleserens alternativer-klasser.

Ønskede evner i Selenium webdriver

Hva er ønskede evner?

Ønskede evner er en klasse i Selenium brukes til å angi egenskaper til nettlesere for å utføre testing på tvers av nettlesere av nettapplikasjoner. Den lagrer funksjonene som nøkkel-verdi-par, og disse egenskapene brukes til å angi nettleseregenskaper som nettlesernavn, nettleserversjon, banen til nettleserdriveren i systemet, etc. for å bestemme oppførselen til nettleseren under kjøretid.

  • Ønsket evne kan også brukes til å konfigurere driverforekomsten av Selenium WebDriver.
  • Vi kan konfigurere driverforekomst som FirefoxDriver, ChromeDriver, InternetExplorerDriver ved å bruke ønskede funksjoner.

Versjonsmerknad: Selenium 4 erstatter DesiredCapabilities med nettleseralternativer-klasser — ChromeOptions, FirefoxAlternativer, EdgeOptions, InternetExplorerOptions. Eksemplene nedenfor beholder den opprinnelige syntaksen.

Hvorfor trenger vi ønskede evner?

Ønskede evner er nødvendige fordi alle Testing scenario bør utføres på et bestemt testmiljø. Testmiljøet kan være en nettleser, Mobil enhet, mobilemulator, mobilsimulator osv. Klassen «ønskede funksjoner» hjelper oss med å fortelle WebDriver hvilket miljø vi skal bruke i testskriptet vårt.

Metoden setCapability i DesiredCapabilities-klassen, som forklares senere på denne siden, kan brukes i Selenium Rutenett. Det brukes til å utføre en parallell utførelse på forskjellige maskinkonfigurasjoner.

Eks: Rutenett (vist nedenfor).

Selenium Rutenettoppsett drevet av ønskede funksjoner

Den brukes til å angi nettleseregenskaper (f.eks. Chrome, IE), plattformnavn (f.eks. Linux, Windows) som brukes mens du utfører Testsak.

Når det gjelder mobilautomatisering, når vi utfører testene på forskjellige varianter av mobile enheter, mobilplattformen (f.eks. iOS, Android) Plattformversjon (eks. 3.x,4.x in Android) kan stilles inn.

Emulatoreksemplet nedenfor viser plattformsettet som er Android og plattformversjonssettet som er IceCream Sandwich (4.x).

Mobilemulatorfunksjoner satt til Android plattform og versjon 4.x

Ønskede evner er mer nyttige i tilfeller som:

  • I mobilapplikasjonsautomatisering, hvor nettleseregenskapene og enhetsegenskapene kan angis.
  • In Selenium Rutenett når vi ønsker å kjøre testtilfellene i en annen nettleser med forskjellige operativsystemer og versjoner.

Typer av ønskede evner metoder

Her skal vi se de forskjellige metodene for ønskede evner og hvordan man bruker en av dem, setCapability()-metoden.

#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) getCapability() Metode

GetCapability()-metoden i klassen DesiredCapabilities kan brukes for å få muligheten som er i bruk i systemet.

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

#8) setCapability() Metode

Metoden setCapability() i Desired Capabilities-klassen brukes til å angi egenskapene til et testmiljø, som enhetsnavn, OS-navn og -versjon, nettlesernavn og -versjon, absolutt sti til appen som testes (.apk-filen til Android app under test), appaktivitet (i Android) og appPackage (i Java).

«setCapability-metoden» i Java har følgende erklæringer:

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)

Sett kapasitet inn Selenium Eksempel

La oss se på et eksempel der vi ønsker å kjøre testtilfellet vårt i Internet Explorer-nettleseren for å åpne nettstedet www.gmail.com ved hjelp av Selenium WebDriver.

Følgende er koden.

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

Kjør nå denne koden fra Eclipse og sjekk ut konsollen.

Utgang:

Den vil gi følgende feil når koden ovenfor kjøres. Feilen oppstår fordi banen til nettleserdriveren (IE i tilfellet ovenfor) ikke er angitt. Nettleseren kunne ikke finnes av Selenium kode.

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.

Løsning:

Løsningen på problemet ovenfor er gitt i advarselsdelen av selve feilen.

  1. Last ned Internet ExplorerDriver frittstående server for 32bit eller 64bit.
  2. Lagre driveren på et passende sted i systemet.
  3. Angi banen for driveren ved hjelp av System.setProperty-metoden. Den brukes til å angi IE-driveren med webdriver-egenskapen. Den hjelper med å finne den kjørbare driverfilen som er lagret på systemplasseringen. (F.eks.: «C:\IEDriverLocation\IEDriver.exe»)

Versjonsmerknad: Selenium 4.6 og senere løser driveren automatisk gjennom Selenium Manager, så System.setProperty er valgfri. Den historiske koden nedenfor er uendret.

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 Forklaring:

I koden ovenfor,

  • Importsetningene importerer de nødvendige pakkene for Selenium WebDriver, de nødvendige pakkene for Internet Explorer-driveren og pakkene for de ønskede funksjonene.
  • setCapability tar de ulike egenskapene som inputvariabler som deretter brukes av webdriveren for å starte applikasjonen i ønsket miljø.
  • setProperty brukes til å angi banen der driveren befinner seg. WebDriver finner deretter den nødvendige driveren.
  • Gmail Nettstedet åpnes i Internet Explorer-nettleseren ved hjelp av «get»-metoden.

Utgang:

Testtilfellet i Internet Explorer-nettleseren vil kjøre uten problemer ved bruk av Selenium WebDriver.

Spørsmål og svar

Den forblir for bakoverkompatibilitet, men er i praksis en eldre versjon. Selenium 4 ruter økter gjennom W3C-kompatible nettleseralternativer, så nye suiter bør foretrekke alternativer.

Chrome-alternativer, FirefoxOptions, EdgeOptions, SafariOptions og InternetExplorerOptions. Hvert objekt går direkte inn i den samsvarende driverkonstruktøren eller inn i RemoteWebDriver.

Bare browserName, browserVersion, platformName, acceptInsecureCerts, pageLoadStrategy, proxy, timeouts og unhandledPromptBehavior er standard. Alt annet trenger et leverandørprefiks, for eksempel goog:chromeOptions.

Appium forventer platformName, automationName, deviceName og enten app eller appPackage pluss appActivity, alle skrevet med prefikset appium:.

Nr. Fra Selenium 4.6, Selenium Leder laster ned den samsvarende driveren automatisk. Angi den bare når du fester en bestemt driverversjon.

Skyleverandører leser de samme nøkkelverdi-parene for å tildele en nettleser, operativsystem og enhet, pluss leverandørprefikserte tilleggsfunksjoner som buildnavn.

AI modellerer produksjonsanalyser og feilhistorikk for å rangere hvilke nettleser-, versjons- og enhetsmikser som fortjener dekning, og trimmer dermed en uhåndterlig matrise.

copilot utkaster funksjonsblokker raskt, men foreslår ofte utdatert DesiredCapabilities-syntaks lært fra eldre kode, så gjennomgå hver genererte linje.

Oppsummer dette innlegget med: