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

    获取一个input输入框的值:

    1 JavascriptExecutor js =(JavascriptExecutor) driver;
    2 merchatName=js.executeScript("return arguments[0].value", m1.byId("subMerName")).toString();

    在selenium里面也提供了执行js代码的方法:

    Object executeScript(String script, Object... args);        

    Object executeAsyncScript(String script, Object... args)

    1、executeScript方法接收两个参数和一个返回值:

    script,javascript代码片段,这段js代码片段是作为js函数的完整方法体,可以使用return语句作为函数的返回值。
    args, 参数数组,参数数组用于将外部数据传递给script(js代码片段),script中可以通过arguments[index]方式索引args数组中的参数;参数数据类型必须是以下几种(number, boolean, String, WebElement, 或者以上数据类型的List集合),当然无参数可以保留为空。
     返回值,返回值是由js代码片段计算后通过return语句返回,返回值数据类型可以为(WebElement,Double,Long,Boolean,String,List或Map),没有return语句,这里返回数据为null。

    2、executeAsyncScript方法接收两个参数和一个返回值:

    script,javascript代码片段,这段js代码片段是作为js函数的完整方法体,与executeScript主要有两点不同:
     a、此处的script必须在代码结束时明确调用callback方法以通知webdriver该script执行结束;该callback方法是由webdriver注入到arguments数组中最后一个元素;可以通过arguments[arguments.length-1]获取到,且可以使用该回调函数返回计算结果(只需要将放回结果作为回调函数的参数即可);

    b、该script执行会有超时时间,默认为60s,超时时间内未调用callback方法,JavascriptExecutor会抛出Timeout异常。
     args, 规则同executeScript。 返回值,规则同executeScript


    转载自: https://blog.csdn.net/a578133380/article/details/80262681

  • 相关阅读:
    转载 轻松搞定面试中的二叉树题目
    关于AVplayer 缓冲问题的处理
    关于iOS接收到推送消息后跳转问题
    iOS 黑魔法
    UITableView的优化
    OC是动态运行时语言是什么意思?什么是动态识别,动态绑定?
    iOS深复制和浅复制
    iOS内存管理(ARC,MRC)
    iOS数据持久化
    详解KVO,KVC
  • 原文地址:https://www.cnblogs.com/zddwork/p/11412237.html
Copyright © 2011-2022 走看看