热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用jQuery做定位元素,做自动化测试你尝试过吗

一、前言元素定位可以说是学自动化测试中必会技能之一,也可以说是通往自动化之路的开门钥匙。就元素定位方法,除了我们常用并熟知的8种元素定位方法之外,还有一种定位方法可以说是一种特殊的

一、前言

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

就元素定位方法,除了我们常用并熟知的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定位 

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

 


2、根据type定位 

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

 


3、根据class定位

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

 


4、按层级定位



  • 带有标签的层级定位

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


  • 不带有标签的层级定位 

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


  • 选择第一个元素标签定位

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


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

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

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

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

package com.autotest.api;
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();
}
}
}


五、运行效果:


推荐阅读
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • 本文介绍了.hbs文件作为Ember.js项目中的视图层,类似于HTML文件的功能,并详细讲解了如何在Ember.js应用中集成Bootstrap框架及其相关组件的方法。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 使用TabActivity实现Android顶部选项卡功能
    本文介绍如何通过继承TabActivity来创建Android应用中的顶部选项卡。通过简单的步骤,您可以轻松地添加多个选项卡,并实现基本的界面切换功能。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • 本文介绍了如何利用jQuery实现对网页上多个div元素的显示与隐藏控制,包括基本的toggle方法及更复杂的显示隐藏逻辑。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 本文深入探讨了Go语言中的接口型函数,通过实例分析其灵活性和强大功能,帮助开发者更好地理解和运用这一特性。 ... [详细]
  • OBS Studio自动化实践:利用脚本批量生成录制场景
    本文探讨了如何利用OBS Studio进行高效录屏,并通过脚本实现场景的自动生成。适合对自动化办公感兴趣的读者。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ... [详细]
author-avatar
高朗1_114
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有