加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 14:38:14 所属栏目:百科 来源:网络整理
导读:一、前言 元素定位可以说是学自动化测试中必会技能之一,也可以说是通往自动化之路的开门钥匙。 就元素定位方法,除了我们常用并熟知的8种元素定位方法之外,还有一种定位方法可以说是一种特殊的存在,那就是JQuery定位,是常用8种定位之外的方法,相对于js

一、前言

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

就元素定位方法,除了我们常用并熟知的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" 的 <input> 元素
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('选择第一个元素标签定位 ')";第一个 <input> 元素
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('222221');";
        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();
        }
    }

}

 

五、运行效果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读