通常在编写 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 自动化中的应用实例之一(赋值)

相关文章:

  • 2022-01-01
  • 2021-12-07
  • 2021-12-18
  • 2021-08-30
  • 2021-12-23
  • 2021-08-23
  • 2022-02-09
  • 2021-10-08
猜你喜欢
  • 2022-03-05
  • 2021-11-17
  • 2021-06-28
  • 2021-12-11
  • 2021-07-18
  • 2022-02-25
  • 2022-01-06
相关资源
相似解决方案