• selenium webdriver 执行javascript代码


    1、小例子:

      //driver.findElement(By.id("addagency")).clear();//点击添加机构按钮进入添加机构界面,或者自己定义一个js进入添加机构界面然后再执行
          String js = "document.getElementById("addagency").click()";//定义一个js
          JavascriptExecutor jse=(JavascriptExecutor)driver;
    		jse.executeScript(js);//执行js
    

     ---------------------------------------------------------------------------------------------------------------------------------------------------------------

    2、(网上转载)

    在用selenium webdriver 编写web页面的自动化测试代码时,可能需要执行一些javascript代码,selenium本身就支持执行js,我们在代码中import org.openqa.selenium.JavascriptExecutor;就可以使用executeScriptexecuteAsyncScript这两个方法了,其中executeScript是同步方法,用它执行js代码会阻塞主线程执行,直到js代码执行完毕;executeAsyncScript方法是异步方法,它不会阻塞主线程执行。
    executeScript方法如果有返回值,有以下几种情况:

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

    executeScript例子:

    import java.util.concurrent.TimeUnit;
     
    import org.openqa.selenium.By;
    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.WebDriver;
     
    /**
    * @author youthflies yeetrack.com
    * Mytest.java  2013-5-19
    * 测试所用临时文件
    */
    public class Mytest
    {
        public static void main(String[] args) throws InterruptedException
        {
            //可能需要设置firefox的路径
            WebDriver driver = new FirefoxDriver();
            try
            {
                driver.get("http://www.baidu.com");
                //利用webdriver键入搜索关键字
                //driver.findElement(By.id("kw")).sendKeys("yeetrack");
                //利用js代码键入搜索关键字
                ((JavascriptExecutor)driver).executeScript("document.getElementById("kw").value="yeetrack"");
                //利用js代码取出关键字
                String keyword = (String) ((JavascriptExecutor)driver).executeScript("var input = document.getElementById("kw").value;return input");
                System.out.println(keyword);
                driver.findElement(By.id("su")).click();
                TimeUnit.SECONDS.sleep(5);
             }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            finally
            {
                driver.quit();
            }
     }
     
    }
    
  • 相关阅读:
    jmeter函数 助手
    虚拟机如和 连接网络
    Loadrunner如何进行有效的IP欺骗
    JMeter生成HTML性能报告
    关于interrupt(),interrupted(),isInterrupted()用法分析
    我的博客----我的大学
    基本排序算法总结
    多个线程之间的通信问题
    多线程同步问题
    第三十七章 : 奇珍异宝
  • 原文地址:https://www.cnblogs.com/baixiaozheng/p/4943154.html
Copyright © 2020-2023  润新知