可以用来执行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 } |