Exécuter JavaScript avec WebDriver en Java
L'intégration de JavaScript avec WebDriver (Selenium 2) à l'aide de Java offre des capacités de test améliorées. En suivant les instructions fournies sur la page de démarrage, il est important de comprendre à partir de quel emplacement la commande "./go webdriverjs" doit être exécutée.
Réponse :
L'exécution de la commande "./go webdriverjs" ne nécessite pas d'être exécuté à partir d'un dossier spécifique. Cette commande est généralement utilisée lorsque vous souhaitez exécuter des tests JavaScript à l'aide de WebDriverJs, une liaison de langage supplémentaire pour WebDriver qui permet d'écrire des tests en JavaScript.
Cependant, si votre objectif est d'exécuter du code JavaScript à partir de WebDriver de Java, le l’approche diffère. Pour exécuter des extraits de code JavaScript dans votre code Java WebDriver, utilisez ce qui suit :
<code class="java">WebDriver driver = new AnyDriverYouWant(); if (driver instanceof JavascriptExecutor) { ((JavascriptExecutor)driver).executeScript("yourScript();"); } else { throw new IllegalStateException("This driver does not support JavaScript!"); }</code>
Vous pouvez également attribuer JavascriptExecutor à une variable pour une utilisation ultérieure :
<code class="java">WebDriver driver = new AnyDriverYouWant(); JavascriptExecutor js; if (driver instanceof JavascriptExecutor) { js = (JavascriptExecutor)driver; } // later on... js.executeScript("return document.getElementById('someId');");</code>
ExecuteScript() La méthode accepte les appels de fonction et le JS brut, vous permettant de manipuler des éléments Web et d'interagir avec la page. Par exemple :
Rechercher un élément par ID :
<code class="java">js.executeScript("return document.getElementById('someId');");</code>
Ajouter une bordure à un élément :
<code class="java">WebElement element = driver.findElement(By.anything("tada")); js.executeScript("arguments[0].style.border='3px solid red'", element);</code>
Changez tous les éléments d'entrée en boutons radio :
<code class="java">js.executeScript( "var inputs = document.getElementsByTagName('input');" + "for(var i = 0; i < inputs.length; i++) { " + " inputs[i].type = 'radio';" + "}" );</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!