WebDriver中執行JavaScript
首先要通過向下轉型 JavascriptExecutor js = (JavascriptExecutor) driver; 轉為JavascriptExector對象
然后再調用executeScript()方法來執行JS。
例:
1. 打開Google首頁
2. 通過JS獲取網頁中的title --- document.title
3. 獲得網頁中鏈接的數量 ----var links = document.getElementsByTagName('A'); return links.length
具體實現如下
package com.example.tests;
import static org.junit.Assert.*;
import org.junit.*;
import org.openqa.selenium.*;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class test {
@Test
public void testJavaScriptCalls() {
WebDriver driver = new InternetExplorerDriver();
driver.get("http://www.google.com.hk");
JavascriptExecutor js = (JavascriptExecutor) driver;
String title = (String) js.executeScript("return document.title");
assertEquals("Google", title);
long links = (Long) js.executeScript("var links = "
+ "document.getElementsByTagName('A'); "
+ "return links.length");
assertEquals(32, links);
driver.close();
}
} 從javaScript代碼中返回數據,我們需要使用return關鍵字。基于返回值的類型,我們需要對executeScript() 方法進行轉型。對于帶小數點的值,使用Double類型,非小數值可以使用Long類型,布爾值可以使用Boolean類型,如果返回的是HTML節點,可以使用 WebElement類型,文本值,可以使用String類型。如果返回的是對象列表,基于對象類型的任何值都可以。 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!