Dans ce segment du tutoriel, nous allons discuter de javascriptexecutor dans le sélénium de manière détaillée et toutes les opérations probables pourraient être effectuées à l'aide de javascriptexecutor dans le sélénium en termes de WebAutomation.
Qu'est-ce que javascriptexecutor dans le sélénium
Dans la bibliothèque Selenium, javascriptexecutor est une interface qui est implémentée plusieurs classes telles que ChromeDriver, FirefoxDriver, RemoteWebDriver, EdgeDriver, EventFiringWebDriver, InternetExplorerDriver, etc. pour prendre en charge différentes opérations liées à Javascript vers les pilotes de navigateur respectifs.
Types de script Java dans Selenium et ses méthodes:
Il existe deux types de méthodes JavaScript disponibles:
Différence entre executeAsyncScript et executeScript:
exécuterAsyncScript : Ce type d'exécuteur de script java est utilisé pour exécuter un code JavaScript asynchrone dans le contexte du cadre ou de la fenêtre actuellement sélectionné.
executeScript: Ce type de script Java Script qui exécute essentiellement du code JavaScript synchrone dans le contexte du cadre ou de la fenêtre actuellement sélectionné.
Opération qui pourrait être effectuée à l'aide de l'exécuteur javascript en sélénium:
Il existe diverses opérations Web cruciales qui sont effectuées en exécutant Javascript dans le pilote du navigateur pour réaliser certaines opérations telles que:
Permet de discuter de toutes les opérations mentionnées ci-dessus:
Clic javascript sélénium
Nous pouvons effectuer une opération de clic dans Selenium avec une opération Javascript dans l'approche ci-dessous:
public void jsClick() { élément WebElement = driver.findElement(By.xpath("Xpath_OF_Element")); JavascriptExecutor jscriptExecutor = (JavascriptExecutor) pilote ; jscriptExecutor.executeScript("arguments[0].click();", element); }
Selenium javascript entrer du texte
Nous pouvons effectuer l'opération sendkeys dans Selenium avec l'opération Javascript dans l'approche ci-dessous:
public void jsSendKeys() { JavascriptExecutor jscriptExecutor = (JavascriptExecutor) pilote ; jscriptExecutor.executeScript("document.getElementById('id_of_the_element').value='ENTER_THE_TEXT_HERE';"); }
Case à cocher Selenium javascript
Nous pourrions utiliser l'option vérifié= true ou false selon les cas d'utilisation pour effectuer les opérations CheckBox avec Javascript dans Selenium.
public void jsCheckBoxOps() { JavascriptExecutor jscriptExecutor = (JavascriptExecutor) pilote ; jscriptExecutor.executeScript("document.getElementById('id_of_the_element').checked=false;"); }
Génération d'alertes javascript Selenium
Pour générer l'alerte, nous devons utiliser "alert ('ALERT_TEXT_TO_BE_SHOWN');”Lors de l'exécution de l'opération avec Javascript.
public void jsAlertGeneration() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) pilote ; jscriptExecutor.executeScript("alert('ALERT_TEXT_TO_BE_SHOWN');"); }
Page d'actualisation de Selenium javascript
Pour actualiser une page Web dans Selenium avec Javascript Executor, nous pouvons utiliser history.go (0).
public void jsRefreshPage() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) pilote ; jscriptExecutor.executeScript("history.go(0)"); }
Selenium javascript pour obtenir le texte interne de WebPage
Pour récupérer tout le texte intérieur, nous pouvons utiliser document.documentElement.innerText;
public String jsFetchInnerText() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) pilote ; return String.valueOf(jscriptExecutor.executeScript("return document.documentElement.innerText;")); }
Selenium javascript obtenir le titre de la page
Pour renvoyer le titre d'une page, nous pouvons utiliser titre du document; avec Javascript Executor dans Selenium.
public String jsWebPageTitle() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) pilote ; return String.valueOf(jscriptExecutor.executeScript("return document.title;")); }
Selenium javascript pour obtenir le domaine
Pour extraire le nom de domaine, nous pouvons utiliser document.domaine;
public String jsFetchDomain() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) pilote ; return String.valueOf(jscriptExecutor.executeScript("return document.domain;")); }
Selenium javascript pour obtenir l'URL d'une page Web
Pour récupérer l'URL à l'aide de JavaScript Executor avec Selenium, nous pourrions utiliser document.URL;
public String jsFetchURL() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) pilote ; return String.valueOf(jscriptExecutor.executeScript("return document.URL;")); }
Selenium javascript Faire défiler une page Web
Nous pouvons effectuer le défilement de plusieurs façons en utilisant Javascript, deux des approches sont présentées ci-dessous dans l'extrait de code, telles que:
public void scrollIntoView(By locator) { try { JavascriptExecutor executor = (JavascriptExecutor) driver; Élément WebElement = driver.findElement(locator); executor.executeScript("arguments[0].scrollIntoView(true);", element); BASE_LOGGER .info("l'opération scrollIntoView a été effectuée pour le localisateur : " + String.valueOf(element)); } catch (Exception e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Erreur rencontrée ie : " + exceptionData + " lors de l'exécution de scrollIntoView sur l'élément : " + locator); } }
Nous pouvons également spécifier la valeur de défilement (quantité de défilement) comme suit l'approche ci-dessous:
public void jsScroll() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) pilote ; jscriptExecutor.executeScript("window.scrollBy(0,1000)"); }
Selenium javascript pour accéder à une autre page
Nous pouvons naviguer vers une page Web / un écran différent en fournissant directement l'emplacement de l'url dans le javascriptexecutor dans Selenium.
public void pageNavigationWithJS() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) pilote ; jscriptExecutor.executeScript("window.location = 'PageURL_To_Navigate'"); }
Selenium javascript Pour rechercher et cliquer sur un élément caché
Nous pourrions directement cliquer sur l'élément caché avec le Javascript depuis le backend même si l'élément n'est pas visible, voici l'extrait de code pour le même:
public void clickOnHiddenElement() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) pilote ; WebElement hiddenElement=driver.findElement(By.id("ID_OF_ELEMENT")); jscriptExecutor.executeScript("arguments[0].click();", hiddenElement); }
Conclusion:
Nous avons jusqu'à présent discuté du Javascript et des différentes opérations à effectuer à l'aide de l'exécuteur Javascript dans Selenium, nous vous encourageons à passer par le tutoriel complet sur Selenium pour avoir une meilleure prise sur tous les différents aspects de la même chose. Dans les prochains segments de la série de tutoriels, nous aborderons plus en détail Automatisation au sélénium Framework et autres technologies les plus récentes pour travailler avec Selenium et pour craquez toute interview avancée dans Selenium que vous pouvez passer ici.