Selenium Webdriver – spúšťanie prehliadačov

V tomto článku sa budeme podrobne venovať príkazom Selenium WebDriver, ktoré sa používajú na spúšťanie prehliadačov. Naučíme sa tiež rôzne dodatočné úpravy potrebné na spustenie určitých prehliadačov, ako sú Chrome, Firefox, Internet Explorer a Safari.
Obsah
Pochopenie príkazu na spustenie prehliadača
Ako sme spomínali v predchádzajúcich návodoch, Selenium WebDriver volá natívne metódy rôznych prehliadačov, aby ich zautomatizoval. Preto máme v Selenium rôzne WebDrivery pre rôzne prehliadače, ako napríklad – FirefoxDriver pre prehliadač Firefox, ChromeDriver pre Google Chrome, InternetExplorerDriver pre Internet Explorer atď. Teraz si vezmime príklad spustenia prehliadača Firefox a podrobne skúsme pochopiť príkaz:
WebDriver driver = new FirefoxDriver();
Toto je java implementácia spustenia prehliadača v programe Selenium. Tu je ‚WebDriver‘ rozhranie a my vytvárame referenčnú premennú ‚driver‘ typu WebDriver, inštanciovanú pomocou triedy ‚FireFoxDriver‘. Pre tých, ktorí nie sú veľmi zbehlí v jazyku Java, rozhranie je ako zmluva, ktorú musia triedy, ktoré ho implementujú, dodržiavať. Rozhranie obsahuje súbor premenných a metód bez tela (bez implementácie, len s názvom metódy a signatúrou). Objekty z rozhraní nemôžeme inštanciovať.
Preto je nasledujúci riadok kódu nesprávny a vyhodí chybu kompilácie s hlásením „Cannot instantiate the type WebDriver“ (Nemožno inštanciovať typ WebDriver).
WebDriver driver = new WebDriver();
Na inštanciáciu objektov ovládača potrebujeme triedy ako FirefoxDriver alebo ChromeDriver, ktoré implementovali rozhranie WebDriver. Inými slovami, tieto triedy ovládačov sa riadia zmluvou WebDriver implementáciou všetkých metód rozhrania WebDriver. Tým sa všetky rôzne typy tried ovládačov stávajú jednotnými a riadia sa rovnakým protokolom.
Všimnite si, že môžeme vytvoriť aj referenčnú premennú typu FirefoxDriver:
FirefoxDriver driver = new FirefoxDriver();
Existencia referenčného objektu WebDriver však pomáha pri testovaní viacerých prehliadačov, pretože ten istý objekt ovládača možno použiť na priradenie k ľubovoľnému z požadovaných ovládačov špecifických pre daný prehliadač.
Spustenie prehliadača Firefox
Firefox je jedným z najpoužívanejších prehliadačov v oblasti automatizácie. Na spustenie prehliadača Firefox sú potrebné nasledujúce kroky:
- Stiahnite si súbor geckodriver.exe zo stránky GeckoDriver Github Release Page. Uistite sa, že ste si stiahli správny súbor ovládača na základe vašej platformy a verzie operačného systému.
- Nastavte systémovú vlastnosť (System Property) na vašom počítači pre „webdriver.gecko.driver“ s cestou geckodriver.exe – System.setProperty(„webdriver.gecko.driver“, „geckodriver.exe path“);
Snippet na spustenie prehliadača Firefox –
public class FirefoxBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting webdriver.gecko.driver property
System.setProperty("webdriver.gecko.driver", pathToGeckoDriver + "\\geckodriver.exe");
//Instantiating driver object and launching browser
driver = new FirefoxDriver();
//Using get() method to open a webpage
driver.get("https://ittester.sk");
//Closing the browser
driver.quit();
}
}
Spustenie prehliadača Chrome
Na spustenie prehliadača Chrome v Selenium musíme nastaviť systémovú vlastnosť webdriver.chrome.driver tak, aby ukazovala na spustiteľný súbor ovládača Chrome:
- Stiahnite si najnovšiu binárnu verziu ovládača ChromeDriver zo stránky na stiahnutie Chromium.org download page a umiestnite spustiteľný súbor do svojho lokálneho počítača.
- Nastavte vlastnosť webdriver.chrome.driver na umiestnenie súboru chromeDriver.exe ako-
System.setProperty(„webdriver.chrome.driver“, „chromeDriver.exe path“);
Snippet na spustenie prehliadača Chrome:
public class ChromeBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting the webdriver.chrome.driver property to its executable's location
System.setProperty("webdriver.chrome.driver", "/lib/chromeDriver/chromedriver.exe");
//Instantiating driver object
driver = new ChromeDriver();
//Using get() method to open a webpage
driver.get("https://ittester.sk");
//Closing the browser
driver.quit();
}
}
Spustenie prehliadača Internet Explorer
Podobne ako ChromeDriver, aj ovládač InternetExplorer vyžaduje nastavenie vlastnosti „webdriver.ie.driver“ s umiestnením IEDriverServer.exe. Súbor IEDriverServer.exe si môžete stiahnuť tu.
Na spustenie prehliadača IE môžete použiť nasledujúci úryvok kódu:
public class IEBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Setting the webdriver.ie.driver property to its executable's location
System.setProperty("webdriver.ie.driver", "/lib/IEDriverServer/IEDriverServer.exe");
//Instantiating driver object
driver = new InternetExplorerDriver();
//Using get() method to open a webpage
driver.get("https://ittester.sk");
//Closing the browser
driver.quit();
}
}
Spustenie prehliadača Safari
Prehliadač Safari nevyžaduje žiadnu dodatočnú konfiguráciu a možno ho priamo spustiť inštanciou pomocou SafariDriver.
Na spustenie prehliadača Safari možno použiť nasledujúci úryvok kódu:
public class SafariBrowserLaunchDemo {
public static void main(String[] args) {
//Creating a driver object referencing WebDriver interface
WebDriver driver;
//Instantiating driver object with SafariDriver
driver = new SafariDriver();
//Using get() method to open a webpage
driver.get("https://ittester.sk");
//Closing the browser
driver.quit();
}
}