Selenium Webdriver – lancement de navigateurs

Dans cet article, nous allons examiner en détail les commandes Selenium WebDriver qui sont utilisées pour lancer les navigateurs. Nous apprendrons également les diverses personnalisations supplémentaires nécessaires pour faire fonctionner certains navigateurs tels que Chrome, Firefox, Internet Explorer et Safari.
Table des matières
Comprendre la commande de lancement du navigateur
Comme nous l’avons mentionné dans les tutoriels précédents, Selenium WebDriver appelle les méthodes natives des différents navigateurs pour les automatiser. C’est pourquoi nous avons différents WebDrivers pour différents navigateurs dans Selenium, tels que – FirefoxDriver pour Firefox, ChromeDriver pour Google Chrome, InternetExplorerDriver pour Internet Explorer, etc. Prenons maintenant l’exemple du lancement de Firefox et essayons de comprendre la commande en détail :
WebDriver driver = new FirefoxDriver() ;
Il s’agit de l’implémentation Java du lancement du navigateur dans Selenium. Voici l’interface « WebDriver » et nous créons une variable de référence « driver » de type WebDriver, instanciée à l’aide de la classe « FireFoxDriver ». Pour ceux qui ne maîtrisent pas très bien Java, une interface est comme un contrat que les classes qui l’implémentent doivent respecter. L’interface contient un ensemble de variables et de méthodes sans corps (pas d’implémentation, juste un nom de méthode et une signature). Il n’est pas possible d’instancier des objets à partir d’interfaces.
Par conséquent, la ligne de code suivante est incorrecte et provoque une erreur de compilation avec le message « Cannot instantiate the type WebDriver ».
WebDriver driver = new WebDriver() ;
Pour instancier des objets pilotes, nous avons besoin de classes comme FirefoxDriver ou ChromeDriver qui implémentent l’interface WebDriver. En d’autres termes, ces classes de pilotes suivent le contrat WebDriver en implémentant toutes les méthodes de l’interface WebDriver. Cela permet d’uniformiser les différentes catégories de conducteurs et de suivre le même protocole.
Notez que nous pouvons également créer une variable de référence de type FirefoxDriver :
FirefoxDriver driver = new FirefoxDriver() ;
Cependant, l’existence d’un objet de référence WebDriver est utile lors des tests de plusieurs navigateurs, car le même objet de pilote peut être utilisé pour affecter n’importe quel pilote spécifique à un navigateur.
Démarrer Firefox
Firefox est l’un des navigateurs les plus utilisés dans le domaine de l’automatisation. Les étapes suivantes sont nécessaires pour lancer Firefox :
- Téléchargez le fichier geckodriver.exe depuis la page de publication Github de GeckoDriver. Assurez-vous de télécharger le bon fichier de pilote en fonction de votre plate-forme et de la version de votre système d’exploitation.
- Définissez lapropriété système de votre ordinateur pour « webdriver.gecko.driver » avec le chemin geckodriver.exe – System.setProperty(« webdriver.gecko.driver », « geckodriver.exe path ») ;
Extrait pour lancer 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();
}
}
Démarrer Chrome
Pour exécuter Chrome dans Selenium, nous devons définir la propriété système webdriver.chrome.driver pour qu’elle pointe vers l’exécutable du pilote Chrome :
- Téléchargez le dernier binaire ChromeDriver à partir de la page de téléchargement Page de téléchargement de Chromium.org et placez le fichier exécutable sur votre machine locale.
- Définissez la propriété webdriver.chrome.driver à l’emplacement du fichier chromeDriver.exe en tant que-
System.setProperty(« webdriver.chrome.driver », « chromeDriver.exe path ») ;
Snippet pour lancer 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();
}
}
Démarrez Internet Explorer
Tout comme ChromeDriver, le pilote InternetExplorer nécessite que la propriété « webdriver.ie.driver » soit définie avec l’emplacement de IEDriverServer.exe. Vous pouvez télécharger le fichier IEDriverServer.exe ici.
Vous pouvez utiliser l’extrait de code suivant pour lancer 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();
}
}
Démarrer Safari
Le navigateur Safari ne nécessite aucune configuration supplémentaire et peut être lancé directement par une instance utilisant SafariDriver.
L’extrait de code suivant peut être utilisé pour lancer 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();
}
}