Ø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.
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).
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).
Ø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.
- Last ned Internet ExplorerDriver frittstående server for 32bit eller 64bit.
- Lagre driveren på et passende sted i systemet.
- 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.


