Gewenste capaciteiten in Selenium webdriver
Wat zijn gewenste capaciteiten?
Gewenste mogelijkheden is een klasse in Selenium gebruikt om eigenschappen van browsers in te stellen om cross-browser tests van webapplicaties uit te voeren. Het slaat de mogelijkheden op als sleutel-waardeparen en deze mogelijkheden worden gebruikt om browsereigenschappen in te stellen, zoals browsernaam, browserversie, pad van browserstuurprogramma in het systeem, enz. om het gedrag van de browser tijdens runtime te bepalen.
- De gewenste mogelijkheid kan ook worden gebruikt om het stuurprogramma-exemplaar van te configureren Selenium Webstuurprogramma.
- We kunnen een stuurprogramma-instantie configureren zoals FirefoxStuurprogramma, ChromeDriver, InternetExplorerDriver door gebruik te maken van de gewenste mogelijkheden.
Waarom hebben we gewenste capaciteiten nodig?
Gewenste mogelijkheden zijn nodig omdat elke Testen scenario moet worden uitgevoerd op een specifieke testomgeving. De testomgeving kan een webbrowser zijn, Mobile apparaat, mobiele emulator, mobiele simulator, etc. De Desired Capabilities Class helpt ons om de webdriver te vertellen welke omgeving we gaan gebruiken in ons testscript.
De setCapability-methode van de DesiredCapabilities-klasse, die later in de tutorial wordt uitgelegd, kan worden gebruikt in Selenium Rooster. Het wordt gebruikt om een parallelle uitvoering uit te voeren op verschillende machineconfiguraties.
Bijvoorbeeld: raster
Het wordt gebruikt om de browsereigenschappen (bijv. Chrome, IE), platformnaam (bijv. Linux, Windows) die worden gebruikt bij het uitvoeren van de testgevallen.
In het geval van mobiele automatisering, aangezien we de tests uitvoeren op verschillende soorten mobiele apparaten, kan het mobiele platform (bijv. iOS, Android) Platformversie (bijv. 3.x,4.x in Android) kan worden ingesteld.
Het bovenstaande emulatorvoorbeeld toont het platform Android en de platformversie IceCream Sandwich (4.x).
Gewenste mogelijkheden zijn nuttiger in gevallen als:
- In de automatisering van mobiele applicaties, waar de browsereigenschappen en de apparaateigenschappen kunnen worden ingesteld.
- In Selenium grid wanneer we de testcases op een andere browser met verschillende besturingssystemen en versies willen uitvoeren.
Soorten gewenste mogelijkheden Methoden
Hier zullen we een ander type methoden voor gewenste mogelijkheden zien en zien hoe we een van deze methoden kunnen gebruiken “setCapability-methode”.
#1) getBrowsernaam()
public java.lang.String getBrowserName()
#2) setBrowserNaam()
public void setBrowserName(java.lang.String browserName)
#3) getVersion()
public java.lang.String getVersion()
#4) setVersie()
public void setVersion(java.lang.String version)
#5) getPlatform()
public Platform getPlatform()
#6) setPlatform()
public Platform setPlatform()
#7) getCapability()-methode
De methode getCapability() van de klasse DesiredCapabilities kan worden gebruikt om de mogelijkheid op te halen die momenteel in het systeem wordt gebruikt.
public java.lang.Object getCapability(java.lang.String capabilityName)
#8) setCapability() Methode
De setCapability()-methode van de klasse Desired Capabilities wordt gebruikt om de eigenschap van een testomgeving in te stellen, zoals apparaatnaam, besturingssysteemnaam en -versie, browsernaam en -versie, absoluut pad van de te testen app (het .apk-bestand van de Android app die wordt getest), app-activiteit (in Android) en appPackage(in Java).
“setCapability-methode” in Java heeft de onderstaande verklaringen:
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)
Stel Mogelijkheid in Selenium Voorbeeld
Laten we een voorbeeld bekijken waarin we onze eigen organisatie willen runnen Testgeval op Internet Explorer-browser om de website www.gmail.com te openen met behulp van Selenium Webdriver.
Hieronder staat de code.
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();
}
}
Voer nu deze code uit vanaf Eclipse en bekijk de console.
Output:
Het zal de volgende fout genereren wanneer bovenstaande code wordt uitgevoerd. De fout treedt op omdat het pad naar de browser driver (IE in het bovenstaande geval) niet is ingesteld. De browser kon niet worden gevonden door de selenium code.
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.
Het resultaat:
De oplossing voor het bovenstaande probleem wordt gegeven in het waarschuwingsgedeelte van de fout zelf.
- Download de zelfstandige Internet ExplorerDriver-server voor 32-bits of 64-bits.
- Sla het stuurprogramma op een geschikte locatie in het systeem op.
- Stel het pad voor het stuurprogramma in met behulp van de Systeem.setProperty methode.
- Het wordt gebruikt om het IE-stuurprogramma in te stellen met de eigenschap webdriver. Het helpt bij het lokaliseren van het uitvoerbare stuurprogrammabestand dat op de systeemlocatie is opgeslagen. (Bijvoorbeeld:”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();
}
}
Code Verklaring:
In de bovenstaande code,
- Met de importinstructies kunt u de vereiste pakketten voor de Selenium-webdriver, vereiste pakketten voor de Internet Explorer-driver en pakketten voor de gewenste mogelijkheden importeren.
- setCapability neemt de verschillende mogelijkheden als invoervariabelen die vervolgens door de webdriver worden gebruikt om de applicatie in de gewenste omgeving te starten.
- setProperty wordt gebruikt om het pad in te stellen waar het stuurprogramma zich bevindt. Web Driver zoekt vervolgens het vereiste stuurprogramma.
- De Gmail-website wordt geopend in de Internet Explorer-browser met behulp van de 'get'-methode.
Output:
De testcase in de Internet Explorer-browser wordt met succes uitgevoerd met behulp van Selenium Webdriver.
Conclusie
De klasse Desired Capabilities helpt bij het instellen van een omgeving om het gedrag van de browser/omgeving te definiëren waarop de test kan worden uitgevoerd.
Het helpt om onze applicatie in de gewenste omgeving te lanceren met de mogelijkheden die we willen gebruiken.


