zoukankan      html  css  js  c++  java
  • selenium webdriver ——执行javascript代码

    在代码中import org.openqa.selenium.JavascriptExecutor;就可以使用executeScript、executeAsyncScript这两个方法了


    executeScript是同步方法,用它执行js代码会阻塞主线程执行,直到js代码执行完毕;
    executeAsyncScript方法是异步方法,它不会阻塞主线程执行。

     

    executeScript方法如果有返回值,有以下几种情况:
    如果返回一个页面元素(document element), 这个方法就会返回一个WebElement
    如果返回浮点数字,这个方法就返回一个double类型的数字
    返回非浮点数字,方法返回Long类型数字
    返回boolean类型,方法返回Boolean类型
    如果返回一个数组,方法会返回一个List<Object>
    其他情况,返回一个字符串
    如果没有返回值,此方法就会返回null

     

    executeScript实例:

    import org.openqa.selenium.By;
    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    
    /**
    * @author Hjianhui
    * JavaScript.java  2016-08-01 
    * 
    */
    public class testJS{
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //利用webdriver键入搜索关键字
            WebDriver driver = new FirefoxDriver();
            try{
                driver.get("http://www.baidu.com");
                
                JavascriptExecutor driver_js= ((JavascriptExecutor) driver);
                //利用js代码键入搜索关键字
                driver_js.executeScript("document.getElementById("kw").value="yeetrack"");

           //利用js代码取出关键字

            String keyword = (String)driver_js.executeScript("var input = document.getElementById("kw").value; return input");

                System.out.println(keyword);    
                driver.findElement(By.id("su")).click();
            }catch (Exception e){
                e.printStackTrace();
            }
            driver.quit();    
        }
    }

     

  • 相关阅读:
    JS(五)
    typescript(02)
    typescript(01)
    opensuse15.1字符界面下配置网络
    docker 再次学习
    load dll get last error 14001 Error: The Side-by-Side configuration information for XXXX.DLL contains errors. sxstrace.exe (14001).
    DRF序列化与反序列化
    《流畅的python》:生成字典的几种方式
    《流畅的python》:bisect来管理已排序的序列
    《流畅的python》:由*初始化一个由列表组成的列表
  • 原文地址:https://www.cnblogs.com/hjhsysu/p/5726096.html
Copyright © 2011-2022 走看看