Selenium Webdriver – spúšťanie prehliadačov

Selenium Webdriver – spúšťanie prehliadačov
10 MIN
30 jún 2023

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:

  1. 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.
  2. 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:

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