• Selenium2学习-036-WebUI自动化实战实例-034-JavaScript 在 Selenium 自动化中的应用实例之六(获取 JS 执行结果返回值)


    Selenium 获取 JavaScript 返回值非常简单,只需要在 js 脚本中将需要返回的数据 return 就可以,然后通过方法返回 js 的执行结果,方法源码如下所示:

     1     /**
     2      * Get Object of return from js
     3      * 
     4      * @author Aaron.ffp
     5      * @version V1.0.0: autoSeleniumDemo main.aaron.sele.core SeleniumCore.java execJSR, 2015-8-9 1:39:17 Exp $
     6      * 
     7      * @param js : return_js
     8      * 
     9      * @return Object
    10      */
    11     public Object execJSR(String js){
    12         return ((JavascriptExecutor)this.webdriver).executeScript(js);
    13     }

    测试步骤概要如下所示:

    1. 启动 Chrome 浏览器
    2. 打开易迅网首页
    3. 执行 JavaScript 脚本,并获取返回值
    4. 关闭页面
    5. 退出 WebDriver

    方法的测试源码如下所示:

     1 /**
     2  * Aaron.ffp Inc.
     3  * Copyright (c) 2004-2015 All Rights Reserved.
     4  */
     5 package main.aaron.demo.javascript;
     6 
     7 import main.aaron.sele.core.SeleniumCore;
     8 
     9 import org.openqa.selenium.chrome.ChromeDriver;
    10 import org.testng.annotations.AfterClass;
    11 import org.testng.annotations.BeforeClass;
    12 import org.testng.annotations.Test;
    13 
    14 /**
    15  * 
    16  * @author Aaron.ffp
    17  * @version V1.0.0: autoSeleniumDemo main.aaron.demo.javascript JQuery.java, 2015-7-27 13:31:31 Exp $
    18  */
    19 public class JQuery extends SeleniumCore{
    20     String jq = "webelement = $('.btn-cor-1')[0]; " + 
    21                 "return webelement.offsetTop + ';' + webelement.offsetLeft + ';' + " + 
    22                 "       webelement.offsetHeight + ';' + webelement.offsetWidth";
    23     String baseUrl = "http://www.yixun.com/";
    24     
    25     @BeforeClass
    26     public void beforeClass() throws InterruptedException{
    27         this.webdriver = new ChromeDriver();
    28         this.webdriver.manage().window().maximize();
    29         this.webdriver.get(baseUrl);
    30         Thread.sleep(5000);
    31     }
    32     
    33     @AfterClass
    34     public void afterClass(){
    35         this.webdriver.close();
    36         this.webdriver.quit();
    37     }
    38     
    39     /**
    40      * Get return of execute JavaScript
    41      * 
    42      * @author Aaron.ffp
    43      * @version V1.0.0: autoSeleniumDemo main.aaron.demo.javascript JQuery.java test_jsReturn, 2015-8-8 15:59:51 Exp $
    44      *
    45      */
    46     @Test
    47     public void test_jsReturn(){
    48         System.out.println("
    Start test_jsReturn ...");
    49         System.out.println(this.execJSR(jq));
    50     }
    51 }

    执行结果如下所示:

    Start test_jsReturn ...
    717;1396;30;100
    

    至此,WebUI 自动化功能测试脚本第 034-JavaScript 在 Selenium 自动化中的应用实例之六(获取 JS 执行结果返回值) 顺利完结,希望此文能够给初学 Selenium 的您一份参考。

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

     

  • 相关阅读:
    JSP所需要掌握的部分
    Parameter index out of range (1 > number of parameters, which is 0).
    Servlet到Servlet的请求转发与重定向的区别
    servlet范围:数据共享
    hihocoder 1169 猜数字
    UVA 1149 Bin Packing
    Using a Comparison Function for the Key Type
    STL Iterators
    SPOJ Pouring Water
    求DAG上两点的最短距离
  • 原文地址:https://www.cnblogs.com/fengpingfan/p/4714460.html
Copyright © 2020-2023  润新知