前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用jQuery做自动化测试是怎样一种感觉

用jQuery做自动化测试是怎样一种感觉

作者头像
软件测试君
发布2019-07-17 16:21:04
8820
发布2019-07-17 16:21:04
举报
文章被收录于专栏:测试人生测试人生

一、前言

元素定位可以说是学自动化测试中必会技能之一,也可以说是通往自动化之路的开门钥匙。

就元素定位方法,除了我们常用并熟知的8种元素定位方法之外,还有一种定位方法可以说是一种特殊的存在。

那就是JQuery定位,是常用8种定位之外的方法,相对于js定位,JQuery语法比较简洁一些,而且方便快捷。

二、关于jQuery 语法

jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。基础语法是:

$(selector).action()

美元符号定义 jQuery

选择符(selector)“查询”和“查找” HTML 元素

jQuery 的 action() 执行对元素的操作示例$(this).hide() - 隐藏当前元素

$("p").hide() - 隐藏所有段落

$(".test").hide() - 隐藏所有 class="test" 的所有元素

$("#test").hide() - 隐藏所有 id="test" 的元素

提示:jQuery 使用的语法是 XPath 与 CSS 选择器语法的组合。关于更多jquery语法可以学

下w3school的教程:http://www.w3school.com.cn/jquery/jquery_syntax.asp。

三、使用JQuery定位元素

1、根据id定位

//选取id为kw的元素
String jq_input = "$('#kw').val('使用id定位')";
js.executeScript(jq_input); 
Thread.sleep(2000); 

2、根据type定位

//选取所有 type="text" 的 <input> 元素
jq_input = "$(':text').val('使用type定位')";
js.executeScript(jq_input); 
Thread.sleep(2000); 

3、根据class定位

//选取所有 class="s_ipt" 的元素
jq_input = "$('.s_ipt').val('使用class定位')"; 
js.executeScript(jq_input); 
Thread.sleep(2000); 

4、按层级定位*带有标签的层级定位

//选取所有 span标签下子元素为input标签且class属性为s_ipt 的元素
jq_input = "$('.s_ipt').val('使用class定位')";
js.executeScript(jq_input); 
Thread.sleep(2000);

不带有标签的层级定位

//选取所有 input标签且class属性为s_ipt 的元素
jq_input = "$('input.s_ipt').val('不带有标签的层级定位 ')"; 
js.executeScript(jq_input); 
Thread.sleep(2000);

选择第一个元素标签定位

//第一个 <input> 元素
jq_input = "$('span>input:first').val('选择第一个元素标签定位 ')";
js.executeScript(jq_input);
Thread.sleep(2000);

选择指定元素 标签:eq(索引位) – 从0开始

//列表中的第1个元素(index 从 0 开始)
jq_input = "$('span input:eq(0)').val('选择最后一个元素')"; 
js.executeScript(jq_input);
Thread.sleep(2000);

四、使用Jquery定位方式完成自动化测试

既然我们已经掌握了jquery这种定位方式,下面我们就用jquery定位方式,模拟360影视看看登陆操作实际代码如下:

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
 * selenium 使用Jquery定位方式模拟登陆实例
 * @author longrong.lang
 */
public class LoadJQuery {
 private static WebDriver driver;
 JavascriptExecutor js;
 @BeforeClass
 public void beforeClass() {
        driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("https://i.360kan.com/login");
        js = (JavascriptExecutor) driver;
 }
 @Test
 public void testJQuery() throws InterruptedException {
 String userName = "$('input[name=\"loginname\"]').val('Refain 博客园');";
        js.executeScript(userName);
 String passWord = "$('input[name=\"loginpassword\"]').val('111111');";
        js.executeScript(passWord);
 String login = "$('.js-b-signin-c-btn [href]').click();";
        js.executeScript(login);
 Thread.sleep(3000);
 }
 @AfterClass
 public void afterClass() {
 if (driver != null) {
            driver.quit();
 }
 }
} 

五、运行效果

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、关于jQuery 语法
  • 三、使用JQuery定位元素
  • 四、使用Jquery定位方式完成自动化测试
  • 五、运行效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档