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 }
测试步骤概要如下所示:
- 启动 Chrome 浏览器
- 打开易迅网首页
- 执行 JavaScript 脚本,并获取返回值
- 关闭页面
- 退出 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 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^