zoukankan      html  css  js  c++  java
  • Selenium-js

    一、javascript示例,操作富文本

    // 给富文本框赋值

    WebElement text=driver.findElement(By.id("textarea"));

    JavascriptExecutor javascriptExecutor=(JavascriptExecutor)driver;

    javascriptExecutor.executeScript("arguments[0].innerHTML=""+"啊啊啊abc"+""", text);

    // 取出富文本框的值

    String areatxt=(String)javascriptExecutor.executeScript("return arguments[0].innerHTML;", text);

    System.out.println(areatxt);

    // 一次传入多个参数

    WebElement input=driver.findElement(By.id("edit"));

    javascriptExecutor.executeScript("arguments[0].innerHTML=""+"bbbbbbbbb"+"";arguments[1].value=""+"input书屋"+"";", text,input);

    executeScript方法如果有返回值,有以下几种情况:

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

    二、javascript操作滚动条

    scrollIntoView是滚动到某个元素的可见范围内,元素在最顶端;

    scrollBy,就是在当前滚动条的范围横向竖向移动多少距离;

    scrollTo,移动到指定的位置

     

    1. //移动到元素element对象的“顶端”与当前窗口的“顶部”对齐  
    2. ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", element);  
    3. ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);  
    4.   
    5. //移动到元素element对象的“底端”与当前窗口的“底部”对齐  
    6. ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(false);", element);  
    7.   
    8. //移动到页面最底部  
    9. ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");  
    10.   
    11. //移动到指定的坐标(相对当前的坐标移动)  
    12. ((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 700)");  
    13. Thread.sleep(3000);  
    14. //结合上面的scrollBy语句,相当于移动到700+800=1600像素位置  
    15. ((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 800)");  
    16.   
    17. //移动到窗口绝对位置坐标,如下移动到纵坐标1600像素位置  
    18. ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, 1600)");  
    19. Thread.sleep(3000);  
    20. //结合上面的scrollTo语句,仍然移动到纵坐标1200像素位置  
    21. ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, 1200)");  

    三、可以通过执行js的方式导入一个js包

    就是执行一段js,这段js通过document.createElement('script');创建一个script标签,然后设置标签的url值,然后找到head,把这个script追加到head末尾(appendchild)。

  • 相关阅读:
    JNI 对象处理 (转)
    快速配置vs2012+opencv
    Jni中C++和Java的参数传递(转)
    版本控制之四:SVN客户端重新设置帐号和密码(转)
    版本控制之三:SVN合并及解决冲突(转)
    版本控制之二:SVN的初步使用(转)
    版本控制之一:SVN服务器搭建与安装(转)
    xml读取一行数据
    方法论:怎样练习一万小时
    一位软件工程师的6年总结(转)
  • 原文地址:https://www.cnblogs.com/zh1990/p/10649027.html
Copyright © 2011-2022 走看看