Önskad kapacitet i Selenium webbdrivrutin
⚡ Smart sammanfattning
Önskade förmågor är en Selenium klass som lagrar webbläsar-, plattforms- och enhetsinställningar som nyckel-värde-par, vilket gör att en enda testsvit kan rikta in sig på många miljöer Selenium Grid, molnnät och mobil automation.
Vad är önskade förmågor?
Önskade förmågor är en klass i Selenium används för att ställa in webbläsares egenskaper för att utföra testning av webbapplikationer över webbläsare. Den lagrar funktionerna som nyckel-värdepar och dessa funktioner används för att ställa in webbläsaregenskaper som webbläsarnamn, webbläsarversion, sökväg till webbläsardrivrutin i systemet, etc. för att bestämma webbläsarens beteende vid körning.
- Önskad förmåga kan också användas för att konfigurera drivrutinsinstansen av Selenium WebDriver.
- Vi kan konfigurera drivrutinsinstanser som FirefoxDrivrutin, ChromeDriver, InternetExplorerDriver genom att använda önskade funktioner.
Versionsnotering: Selenium 4 ersätter DesiredCapabilities med webbläsaralternativsklasser — ChromeOptions, FirefoxAlternativ, EdgeOptions, InternetExplorerOptions. Exemplen nedan behåller den ursprungliga syntaxen.
Varför behöver vi önskade förmågor?
Önskade förmågor behövs eftersom alla Testning scenario bör köras på någon specifik testmiljö. Testmiljön kan vara en webbläsare, Mobil enhet, mobilemulator, mobilsimulator etc. Klassen Desired Capabilities hjälper oss att ange för WebDriver vilken miljö vi ska använda i vårt testskript.
Metoden setCapability i DesiredCapabilities-klassen, som förklaras senare på den här sidan, kan användas i Selenium Rutnät. Det används för att utföra en parallellt utförande på olika maskinkonfigurationer.
Exempel: Rutnät (visas nedan).
Den används för att ställa in webbläsarens egenskaper (ex. Chrome, IE), plattformsnamn (ex. Linux, Windows) som används när man kör Testfall.
När det gäller mobil automatisering, när vi utför testerna på olika varianter av mobila enheter, mobilplattformen (ex. iOS, Android) Plattformsversion (ex. 3.x,4.x in Android) kan ställas in.
Emulatorexemplet nedan visar plattformsuppsättningen som är Android och plattformsversionsuppsättningen som är IceCream Sandwich (4.x).
Önskade funktioner är mer användbara i fall som:
- I mobilapplikationsautomation, där webbläsaregenskaperna och enhetsegenskaperna kan ställas in.
- In Selenium Grid när vi vill köra testfallen i en annan webbläsare med olika operativsystem och versioner.
Typer av önskade kapacitetsmetoder
Här kommer vi att se de olika Desired Capabilities-metoderna och hur man använder 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() Metod
Metoden getCapability() i klassen DesiredCapabilities kan användas för att få den förmåga som för närvarande används i systemet.
public java.lang.Object getCapability(java.lang.String capabilityName)
#8) setCapability() Metod
Metoden setCapability() i klassen Desired Capabilities används för att ange egenskaper för en testmiljö, som enhetsnamn, operativsystemnamn och version, webbläsarnamn och version, absolut sökväg till appen som testas (.apk-filen för Android app under test), appaktivitet (i Android) och appPackage (i Java).
"setCapability-metoden" i Java har följande deklarationer:
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)
Ställ in kapacitet Selenium Exempelvis
Låt oss titta på ett exempel där vi vill köra vårt testfall i webbläsaren Internet Explorer för att öppna webbplatsen www.gmail.com med hjälp av Selenium WebDriver.
Följande är 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(); } }
Kör nu den här koden från Eclipse och kolla in konsolen.
Produktion:
Följande felmeddelande visas när ovanstående kod körs. Felet uppstår eftersom sökvägen till webbläsardrivrutinen (IE i fallet ovan) inte är angiven. Webbläsaren kunde inte hittas av Selenium koda.
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å ovanstående problem ges i varningssektionen för själva felet.
- Ladda ner Internet ExplorerDriver fristående server för 32bit eller 64bit.
- Spara föraren på lämplig plats i systemet.
- Ange sökvägen för drivrutinen med hjälp av metoden System.setProperty. Den används för att ställa in IE-drivrutinen med egenskapen webdriver. Den hjälper till att hitta den körbara drivrutinsfil som lagras på systemplatsen. (Ex: ”C:\IEDriverLocation\IEDriver.exe”)
Versionsnotering: Selenium 4.6 och senare löser drivrutinen automatiskt via Selenium Manager, så System.setProperty är valfritt. Den historiska koden nedan är oförändrad.
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 Förklaring:
I koden ovan,
- Importsatserna importerar de nödvändiga paketen för Selenium WebDriver, de paket som krävs för Internet Explorer-drivrutinen och paketen för önskade funktioner.
- setCapability tar de olika funktionerna som indatavariabler som sedan används av webbdrivrutinen för att starta applikationen i önskad miljö.
- setProperty används för att ange sökvägen dit drivrutinen finns. WebDriver letar sedan upp den drivrutin som behövs.
- Gmail Webbplatsen öppnas i webbläsaren Internet Explorer med hjälp av "get"-metoden.
Produktion:
Testfallet i webbläsaren Internet Explorer kommer att köras utan problem med Selenium WebDriver.


