可以用來執行js代碼,如下所示
該例子打開瀏覽器,並顯示一個alert提示框
1 import org.openqa.selenium.JavascriptExecutor; 2 import org.openqa.selenium.WebDriver; 3 import org.openqa.selenium.firefox.FirefoxDriver; 4 5 public class JavaScript { 6 7 public static void main(String[] args) { 8 WebDriver driver = new FirefoxDriver(); 9 // 執行js代碼 10 // 1.將driver強制轉換為JavascriptExecutor類型 11 // 2.調用executeScript方法 12 ((JavascriptExecutor)driver).executeScript("alert(\"hello,this is a alert!\")"); 13 } 14 }
也可以用JS獲取網頁中的信息,返回給selenium
該例子通過執行JS代碼return document.title 獲取網頁的title,返回給selenium,並打印。(只是個例子- -#)
1 import org.openqa.selenium.WebDriver; 2 import org.openqa.selenium.firefox.FirefoxDriver; 3 import org.openqa.selenium.JavascriptExecutor; 4 5 6 public class JavaScript2 { 7 8 public static void main(String[] args) { 9 WebDriver driver = new FirefoxDriver(); 10 driver.get("http://www.baidu.com/"); 11 /* 12 * !!!這里注意!!! 13 * 該方法引用的是包org.openqa.selenium.JavascriptExecutor下的對象JavascriptExecutor 14 而不是com.gargoylesoftware.htmlunit.javascript.background.JavaScriptExecutor包下面的 15 JavaScriptExecutor對象 16 他們差別在Java后s的大小寫 17 */ 18 // 不是JavaScriptExecutor 19 JavascriptExecutor js = (JavascriptExecutor)driver; 20 // 通過js獲取網頁的title 注意有return 21 String title = (String) js.executeScript("return document.title"); 22 System.out.println(title); 23 driver.close(); 24 } 25 }
