如果你是一個JS高手的話可以在WebDriver 中直接執(zhí)行JS代碼來提升效率,一般用到執(zhí)行js的場景主要分一下兩種:
在頁面加載的時候執(zhí)行JS
在某個已經(jīng)定位了的元素上執(zhí)行js
Demos:
package org.coderinfo.demo;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class ExecuteJSOnPageLoading {
private static final String URL = "file:///C:/user/Desktop/Selenium/jsdemo.html";
public static void main(String[] args) {
WebDriver driver = new ChromeDriver(); // create a chrome driver
driver.manage().window().maximize(); // max size the chrome window
driver.get(URL); // open URL with the chrome browser
try {
Thread.sleep(2000); // wait for web loading
} catch (InterruptedException e) {
e.printStackTrace();
}
// Execute JavaScript on page loading
((JavascriptExecutor)driver).executeScript("alert("Hello,World!")");
ele.click();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.quit(); // close webdriver
}
}
package org.coderinfo.demo;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class ExecuteJSOnWebElement {
private static final String URL = "file:///C:/user/Desktop/Selenium/jsdemo.html";
public static void main(String[] args) {
WebDriver driver = new ChromeDriver(); // create a chrome driver
driver.manage().window().maximize(); // max size the chrome window
driver.get(URL); // open URL with the chrome browser
try {
Thread.sleep(2000); // wait for web loading
} catch (InterruptedException e) {
e.printStackTrace();
}
/*
* Execute JavaScript on web element
*/
WebElement ele = driver.findElement(By.id("js")); // locate web element
((JavascriptExecutor) driver)
.executeScript(
"arguments[0].onclick=function(){alert('js has been execute!');}",
ele); // add js on the web element
ele.click();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.quit(); // close webdriver
}
}