Selenium Webdriver – lanzamiento de navegadores

Selenium Webdriver – lanzamiento de navegadores
MIN
30 Jun 2023

En este artículo, vamos a echar un vistazo detallado a los comandos de Selenium WebDriver que se utilizan para lanzar navegadores. También aprenderemos las distintas personalizaciones adicionales necesarias para ejecutar determinados navegadores, como Chrome, Firefox, Internet Explorer y Safari.

Índice

Comprender el comando para iniciar el navegador

Como hemos mencionado en tutoriales anteriores, Selenium WebDriver llama a métodos nativos de varios navegadores para automatizarlos. Por eso tenemos diferentes WebDrivers para diferentes navegadores en Selenium, como – FirefoxDriver para Firefox, ChromeDriver para Google Chrome, InternetExplorerDriver para Internet Explorer, etc. Ahora tomemos el ejemplo de lanzar Firefox e intentemos comprender el comando en detalle:

WebDriver driver = nuevo FirefoxDriver();

Esta es la implementación java del lanzamiento del navegador en Selenium. Aquí está la interfaz ‘WebDriver’ y estamos creando una variable de referencia ‘driver’ de tipo WebDriver, instanciada mediante la clase ‘FireFoxDriver’. Para los que no dominen mucho Java, una interfaz es como un contrato que deben cumplir las clases que la implementan. La interfaz contiene un conjunto de variables y métodos sin cuerpo (sin implementación, sólo un nombre de método y una firma). No podemos instanciar objetos a partir de interfaces.
Por lo tanto, la siguiente línea de código es incorrecta y lanza un error de compilación con el mensaje «No se puede instanciar el tipo WebDriver».

WebDriver driver = nuevo WebDriver();

Para instanciar objetos controlador, necesitamos clases como FirefoxDriver o ChromeDriver que implementen la interfaz WebDriver. En otras palabras, estas clases de controlador siguen el contrato WebDriver implementando todos los métodos de la interfaz WebDriver. Esto hace que todos los tipos de clases de conductor sean uniformes y sigan el mismo protocolo.
Ten en cuenta que también podemos crear una variable de referencia de tipo FirefoxDriver:

FirefoxDriver controlador = nuevo FirefoxDriver();

Sin embargo, la existencia de un objeto de referencia WebDriver ayuda cuando se prueban varios navegadores, porque el mismo objeto controlador puede utilizarse para asignar a cualquiera de los controladores específicos del navegador deseado.

Iniciar Firefox

Firefox es uno de los navegadores más utilizados en automatización. Para iniciar Firefox debes seguir los siguientes pasos:

  1. Descarga el archivo geckodriver.exe de la página de publicación de GeckoDriver en Github. Asegúrate de descargar el archivo del controlador correcto en función de tu plataforma y versión del sistema operativo.
  2. Establece laPropiedad del Sistema en tu ordenador para «webdriver.gecko.driver» con la ruta geckodriver.exe – System.setProperty(«webdriver.gecko.driver», «ruta geckodriver.exe»);

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

Iniciar Chrome

Para ejecutar Chrome en Selenium, tenemos que establecer la propiedad del sistema webdriver.chrome.driver para que apunte al ejecutable del controlador de Chrome:

  1. Descarga el último binario de ChromeDriver desde la página de descargas Página de descargas de Chromium.org y coloca el archivo ejecutable en tu máquina local.
  2. Establece la propiedad webdriver.chrome.driver en la ubicación del archivo chromeDriver.exe como-.

System.setProperty(«webdriver.chrome.driver», «ruta chromeDriver.exe»);

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

Iniciar Internet Explorer

De forma similar a ChromeDriver, el controlador de InternetExplorer requiere que se establezca la propiedad «webdriver.ie.driver» con la ubicación de IEDriverServer.exe. Puedes descargar el archivo IEDriverServer.exe aquí .
Puedes utilizar el siguiente fragmento de código para iniciar IE:

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

Iniciar Safari

El navegador Safari no requiere ninguna configuración adicional y puede ser lanzado directamente por una instancia que utilice SafariDriver.

El siguiente fragmento de código puede utilizarse para iniciar Safari:

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