Selenium2.0功能測試之WebDriver執行JS方法
如果你是一個JS高手的話可以在WebDriver 中直接執行JS代碼來提升效率,一般用到執行js的場景主要分一下兩種:
在頁面加載的時候執行JS
在某個已經定位了的元素上執行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 } } |
這里是用來測試的jsdemo.html的源碼:
<!DOCTYPE html> <html> <head> <title>JavaScript Demo</title> </head> <body> <form action="#" method="get"> <input type="button" id="js" value="TestExecuteJS"/> </form> </body> </html> |
posted on 2013-10-24 10:44 順其自然EVO 閱讀(4707) 評論(0) 編輯 收藏 所屬分類: selenium and watir webdrivers 自動化測試學習