• Selenium2学习-011-WebUI自动化实战实例-009-JavaScript 在 Selenium 自动化中的应用实例之一(赋值)


    通常在编写 Selenium 的 WebUI 自动化脚本时,有些元素不易定位元素,或有些元素为隐藏的(此时用 WebElement.getText() 获取其值的时候,返回的结果为空),对日常的 UI 自动化脚本的编写造成了一定程度的影响。若亲有一定的前段开发基础,肯能会想到可否通过 JavaScript 脚本来操作元素呢?答案是肯定的,Slenium 已经为各位小主们提供了执行 js 脚本的功能,那就是 JavascriptExecutor,小主们只需要将 WebDriver 转换为 JavascriptExecutor 类型,调用其 executeScript 的方法,就可执行 js 脚本了。是不是非常的方便啊 ^_^

    此文主要以易迅网修改 input 文本框的内容进行一个简单实例讲解,希望能对各位小主有所启示和帮助。若有不足之处,敬请大神指正,不胜感激!

    以下为 JavaScript 在 Selenium 自动化中的应用实例之一(赋值)的 Java 自动化测试脚本实例源代码,敬请参阅!

     1 package main.aaron.demo.javascript;
     2 
     3 import org.openqa.selenium.By;
     4 import org.openqa.selenium.JavascriptExecutor;
     5 import org.openqa.selenium.WebElement;
     6 import org.testng.annotations.Test;
     7 
     8 import main.aaron.sele.core.TestCase;
     9 
    10 /**
    11  * JavaScript 在 Selenium 自动化中的应用实例
    12  * 
    13  * @author Aaron.ffp
    14  * @version V1.0.0: autoSeleniumDemo main.aaron.demo.javascript JavaScript.java, 2015-6-17 00:24:59 Exp $
    15  */
    16 public class JavaScript extends TestCase{
    17     // 执行 JavaScript 脚本,输入查询内容 iPhone 6 plus
    18     private String jscript = "document.getElementById('q_show').value='iPhone 6 plus'";
    19     private String baseUrl = "http://www.yixun.com/";
    20     
    21     /**
    22      * JavaScript 赋值
    23      * 
    24      * @author Aaron.ffp
    25      * @version V1.0.0: autoSeleniumDemo main.aaron.demo.javascript JavaScript.java testJscript, 2015-6-17 12:37:57 Exp $
    26      * 
    27      * @throws InterruptedException
    28      */
    29     @Test
    30     public void testJscript() throws InterruptedException{
    31         this.webdriver.get(this.baseUrl);
    32         
    33         WebElement search = this.webdriver.findElement(By.cssSelector(".mod_search_btn"));
    34 
    35         this.execJavascript(jscript);
    36         
    37         search.click();
    38 
    39         this.webdriver.close();
    40         this.webdriver.quit();
    41     }
    42     
    43     /**
    44      * 执行 JScript 脚本
    45      * 
    46      * @author Aaron.ffp
    47      * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java execJavascript, 2015-6-17 00:25:38 Exp $
    48      * 
    49      * @param jscript 脚本
    50      */
    51     public void execJavascript(String jscript){
    52         ((JavascriptExecutor)this.webdriver).executeScript(jscript);
    53     }
    54 }
    Selenium 自动化中的应用实例之一(赋值)

      document.getElementById('q_show').value='iPhone 6 plus' 这个 js 脚本的作用是:通过id='q_show'找到易迅网的搜索框并赋值 iPhone 6 plus。 

      PS:使用上述源码时,请自行添加启动浏览器的代码

     

    至此,WebUI 自动化功能测试脚本第 009 篇-JavaScript 在 Selenium 自动化中的应用实例之一对input赋值 顺利完结,希望此文能够给初学 Selenium 的您一份参考。

    最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

     

  • 相关阅读:
    freemaker获取字符串长度
    freemarker截取字符串subString
    [转]freemarker中的list
    python常用模块——os模块
    python正则表达式
    需要区分对比的函数以及函数小结
    信道极限容量
    信道和调制
    python中颜色设置
    python中的exec()、eval()以及complie()
  • 原文地址:https://www.cnblogs.com/fengpingfan/p/4583056.html
Copyright © 2020-2023  润新知