A kívánt képességek Selenium webdriver

⚡ Okos összefoglaló

A kívánt képességek egy Selenium olyan osztály, amely kulcs-érték párokként tárolja a böngésző, a platform és az eszköz beállításait, lehetővé téve, hogy egyetlen tesztkészlet számos környezetet célozzon meg Selenium Grid, felhőalapú gridek és mobil automatizálás.

  • 🔘 Meghatározás: Kulcs-érték párok, amelyek megnevezik a böngészőt, a verziót, a platformot és az illesztőprogram elérési útját.
  • ☑️ Cél: Egyetlen csomag fut böngészőkön, operációs rendszereken és mobileszközökön.
  • ✅ Módszerek: A setCapability(), getCapability(), setBrowserName(), setVersion() és setPlatform() metódusok írják le a környezetet.
  • 🧪 Példa: Az Internet Explorer útmutatója reprodukálja az illesztőprogram-elérési út hibáját és annak javítását.
  • 🇧🇷 Modern megfelelője: Selenium A 4-es verzió ugyanazokat a beállításokat tartalmazza a böngésző Beállítások osztályaiban.

A kívánt képességek Selenium webdriver

Mi a kívánt képességek?

A kívánt képességek egy osztály a Selenium a böngészők tulajdonságainak beállítására szolgál a webalkalmazások böngészők közötti teszteléséhez. A képességeket kulcs-érték párokként tárolja, és ezekkel a képességekkel állíthatja be a böngésző tulajdonságait, például a böngésző nevét, verzióját, a böngésző illesztőprogramjának elérési útját a rendszerben stb., hogy meghatározza a böngésző viselkedését futás közben.

  • A kívánt képesség az illesztőprogram-példány konfigurálására is használható Selenium WebDriver.
  • Konfigurálhatunk illesztőprogram-példányt FirefoxIllesztőprogram, ChromeDriver, InternetExplorerDriver a kívánt képességek használatával.

Verzió megjegyzés: Selenium 4 felülírja a DesiredCapabilities osztályokat a böngésző Options osztályaival — ChromeOptions, FirefoxOptions, EdgeOptions, InternetExplorerOptions. Az alábbi példák megtartják az eredeti szintaxist.

Miért van szükségünk a kívánt képességekre?

A kívánt képességekre azért van szükség, mert minden Tesztelés forgatókönyvet valamilyen meghatározott tesztelési környezetben kell végrehajtani. A tesztelési környezet lehet webböngésző, Mobil eszköz, mobil emulátor, mobil szimulátor stb. A Desired Capabilities osztály segít megmondani a WebDrivernek, hogy melyik környezetet fogjuk használni a tesztszkriptünkben.

A DesiredCapabilities osztály setCapability metódusa, amelyet a lap későbbi részében ismertetünk, a következőképpen használható: Selenium Rács. Egy párhuzamos végrehajtás különböző gépkonfigurációknál.

Pl.: Rács (lásd alább).

Selenium A kívánt képességek által vezérelt hálózatbeállítás

A böngésző tulajdonságainak beállítására szolgál (pl. Chrome, IE), platformnév (pl. Linux, Windows), amelyeket a végrehajtás során használnak Teszt eset.

A mobilautomatizálás esetében, mivel a teszteket különböző típusú mobileszközökön végezzük, a Mobil Platform (pl. iOS, Android) Platformverzió (pl. 3.x, 4.x hüvelyk Android) állítható be.

Az alábbi emulátor példa a platformkészletet, amely az Android, és a platformverziót, amely az IceCream Sandwich (4.x), mutatja.

A mobil emulátor képességei a következőre vannak beállítva: Android platform és 4.x verzió

A kívánt képességek hasznosabbak az alábbi esetekben:

  • Mobilalkalmazás-automatizálásban, ahol a böngésző tulajdonságai és az eszköz tulajdonságai állíthatók be.
  • In Selenium Grid-et használunk, ha a teszteseteket különböző böngészőkön, különböző operációs rendszerekkel és verziókkal szeretnénk futtatni.

A kívánt képességek módszerei

Itt megismerkedünk a különböző Desired Capabilities metódusokkal, és azzal, hogyan használhatjuk az egyiket, a setCapability() metódust.

#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() Method

A DesiredCapabilities osztály getCapability() metódusa használható a rendszerben jelenleg használt képesség lekérésére.

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

#8) setCapability() Method

A Desired Capabilities osztály setCapability() metódusa a tesztkörnyezet tulajdonságainak beállítására szolgál, mint például az eszköz neve, az operációs rendszer neve és verziója, a böngésző neve és verziója, a tesztelt alkalmazás abszolút elérési útja (a tesztelt alkalmazás .apk fájlja). Android alkalmazás tesztelés alatt), alkalmazástevékenység (in Android) és az alkalmazáscsomag (a Java).

„setCapability metódus” a Java az alábbi nyilatkozatokkal rendelkezik:

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)

Állítsa be a képességet Selenium Példa

Vegyünk egy példát, ahol a tesztesetünket az Internet Explorer böngészőben szeretnénk futtatni a www.gmail.com webhely megnyitásához a következő használatával: Selenium WebDriver.

Következő a kód.

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

Most futtassa ezt a kódot innen Eclipse és nézd meg a konzolt.

output:

A következő hibát fogja dobni, amikor a fenti kód végrehajtódik. A hiba azért történik, mert a böngésző illesztőprogramjának (a fenti esetben IE) elérési útja nincs beállítva. A böngésző nem található a(z) Selenium kód.

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.

Megoldás:

A fenti probléma megoldása a hiba figyelmeztető részében található.

  1. Töltse le az Internet ExplorerDriver önálló kiszolgálót 32 vagy 64 bites verzióra.
  2. Mentse az illesztőprogramot egy megfelelő helyre a rendszerben.
  3. Állítsa be az illesztőprogram elérési útját a System.setProperty metódussal. Ez az IE illesztőprogram webdriver tulajdonsággal történő beállítására szolgál. Segít megtalálni a rendszermappában tárolt illesztőprogram futtatható fájlját. (Pl.: „C:\IEDriverLocation\IEDriver.exe”)

Verzió megjegyzés: Selenium 4.6 és újabb verziók automatikusan megoldják az illesztőprogramot Selenium Manager, így a System.setProperty opcionális. Az alábbi korábbi kód változatlan.

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 Magyarázat:

A fenti kódban

  • Az import utasítások importálják a szükséges csomagokat a Selenium WebDriver, az Internet Explorer illesztőprogramjához szükséges csomagok, valamint a kívánt funkciókhoz szükséges csomagok.
  • A setCapability bemeneti változóként veszi a különféle képességeket, amelyeket aztán a web-illesztőprogram használ az alkalmazás elindításához a kívánt környezetben.
  • A setProperty függvénnyel állíthatjuk be az illesztőprogram elérési útját. A WebDriver ezután megkeresi a szükséges illesztőprogramot.
  • Gmail A weboldal az Internet Explorer böngészőben a „get” metódussal nyitható meg.

output:

Az Internet Explorer böngészőben a teszteset sikeresen lefut a következővel: Selenium WebDriver.

GYIK

A visszafelé kompatibilitás kedvéért megmarad, de gyakorlatilag örökölt. Selenium A 4. lépés W3C-kompatibilis böngésző Options objektumokon keresztül irányítja a munkameneteket, így az új csomagoknak az Options objektumokat kell előnyben részesíteniük.

ChromeOpciók, FirefoxOptions, EdgeOptions, SafariOptions és InternetExplorerOptions. Minden objektum közvetlenül a megfelelő illesztőprogram-konstruktorba vagy a RemoteWebDriverbe kerül.

Csak a browserName, browserVersion, platformName, acceptInsecureCerts, pageLoadStrategy, proxy, timeouts és unhandledPromptBehavior a szabványos. Minden máshoz szállítói előtag szükséges, például goog:chromeOptions.

Appium A rendszer a platformName, automationName, deviceName, valamint az app vagy appPackage paramétereket, illetve az appActivity paramétereket várja, mindegyiket az appium: előtaggal írva.

Nem. Feladó Selenium 4.6, Selenium menedzser automatikusan letölti a megfelelő illesztőprogramot. Csak akkor állítsa be, ha egy adott illesztőprogram-buildet rögzít.

A felhőszolgáltatók ugyanazokat a kulcs-érték párokat olvassák be a böngésző, az operációs rendszer és az eszköz kiosztásához, valamint a szállító által előtaggal rögzített extrákat, például a build nevét.

A mesterséges intelligencia modellek segítségével kibányásszák a termelési elemzéseket és a hibaelőzményeket, hogy rangsorolják, mely böngésző-, verzió- és eszközkombinációk érdemelnek figyelmet, így szűkítve a kezelhetetlen mátrixot.

Másodpilóta gyorsan elkészíti a képességblokkok vázlatait, de gyakran javasolja az elavult DesiredCapabilities szintaxist, amelyet régebbi kódból tanultak, ezért minden generált sort ellenőrizni kell.

Foglald össze ezt a bejegyzést a következőképpen: