WebDriver中執行JavaScript

jopen 12年前發布 | 31K 次閱讀 Selenium 測試工具 webdriver

首先要通過向下轉型 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!