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 的您一份参考。

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

 

原文地址:https://www.cnblogs.com/fengpingfan/p/4714460.html