在selenium(webdriver)中执行js

JavascriptExecutor js = (JavascriptExecutor) driver;js.executeScript(Stringscript,object... args);

第一行代码将driver强制转换为JavascriptExecutor

第二行代码是执行js,参数script是要执行的js语句,可以看到第二个参数在参数类型和参数名之间有…,

Java里,这代表这个参数可以没有,也可以有1个或者多个。对于executeScript这个方法,取决于js语句是否需要参数。该方法返回值Boolean, Long, String, List or WebElement. 或者是 null.

示例

JavascriptExecutor js = (JavascriptExecutor) driver;// 用js弹出alertjs.executeScript("alert('Test Case Execution Is started Now..');");driver.switchTo().alert().accept();// 用js判断页面加载完毕,返回completeSystem.out.println("readyState: "+ js.executeScript("return document.readyState").toString());// 用js得到页面的titleString title = (String) js.executeScript("return document.title");System.out.println("current page title get by js: "+ title);// 用js得到页面的domain nameSystem.out.println("current page domain name get by js: "+ js.executeScript("return document.domain"));// 用js操作页面元素,如高亮显示某个元素WebElement element = driver.findElement(By.id("kw"));js.executeScript("arguments[0].setAttribute('style', arguments[1]);",        element,"color: orange; border: 4px solid orange;");/**

* 每隔一秒check一下页面加载是否完成,check次数是25

*/publicvoidcheckPageIsReady() {    JavascriptExecutor js = (JavascriptExecutor) driver;for(inti =0; i <25; i++) {if("complete".equals(js                .executeScript("return document.readyState").toString())) {break;        }try{            Thread.sleep(1000);        }catch(InterruptedException e) {            e.printStackTrace();        }    }}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,330评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 9,281评论 0 11
  • 永恆不變
    DavidYBS阅读 1,319评论 0 0
  • 梁诗睿 很荣幸也很开心能有这次到美国萨克拉门托市交流的机会。在接到李老师电话...
    捷径语文阅读 3,452评论 0 0
  • 2017年10月30号,今天,没错就是今天这个让我一生都难以忘记的日子,今天是我们培训的第一天,上午和领导见面,开...
    和曾经的斯坦福阅读 1,648评论 1 1

友情链接更多精彩内容