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

前端之家收集整理的这篇文章主要介绍了用jQuery做自动化测试是怎样一种感觉?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、前言

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

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

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

 

2、根据type定位 

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

 

3、根据class定位

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

 

4、按层级定位

  1. jq_input = "$('.s_ipt').val('使用class定位')"; 选取所有 span标签下子元素为input标签class属性s_ipt 的元素
  2. js.executeScript(jq_input);
  3. Thread.sleep(2000);
  • 不带有标签的层级定位 
  1. jq_input = "$('input.s_ipt').val('不带有标签的层级定位 ')";选取所有 input标签class属性s_ipt 的元素
  2. js.executeScript(jq_input);
  3. Thread.sleep(2000);
  • 选择第一个元素标签定位
  1. jq_input = "$('span>input:first').val('选择第一个元素标签定位 ')";第一个 <input> 元素
  2. js.executeScript(jq_input);
  3. Thread.sleep(2000);
  • 选择指定元素 标签:eq(索引位) – 从0开始 
  1. jq_input = "$('span input:eq(0)').val('选择最后一个元素')";列表中的第1个元素(index 0 开始)6
  2. js.executeScript(jq_input);
  3. Thread.sleep(2000);

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

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

  1. package com.autotest.api;
  2.  
  3. import org.openqa.selenium.JavascriptExecutor;
  4. import org.openqa.selenium.WebDriver;
  5. import org.openqa.selenium.chrome.ChromeDriver;
  6. import org.testng.annotations.AfterClass;
  7. import org.testng.annotations.BeforeClass;
  8. import org.testng.annotations.Test;
  9.  
  10.  
  11. /**
  12. * selenium 使用Jquery定位方式模拟登陆实例
  13. *
  14. * @author longrong.lang
  15. */
  16.  
  17. public class LoadJQuery {
  18.  
  19. private static WebDriver driver;
  20. JavascriptExecutor js;
  21.  
  22.  
  23. @BeforeClass
  24. public void beforeClass() {
  25. driver = new ChromeDriver();
  26. driver.manage().window().maximize();
  27. driver.get("https://i.360kan.com/login");
  28. js = (JavascriptExecutor) driver;
  29.  
  30. }
  31.  
  32.  
  33. @Test
  34. public void testJQuery() throws InterruptedException {
  35. String userName = "$('input[name=\"loginname\"]').val('Refain 博客园');";
  36. js.executeScript(userName);
  37. String passWord = "$('input[name=\"loginpassword\"]').val('111111');";
  38. js.executeScript(passWord);
  39. String login = "$('.js-b-signin-c-btn [href]').click();";
  40. js.executeScript(login);
  41. Thread.sleep(3000);
  42.  
  43. }
  44.  
  45.  
  46. @AfterClass
  47. public void afterClass() {
  48. if (driver != null) {
  49. driver.quit();
  50. }
  51. }
  52.  
  53. }
  54.  

五、运行效果

猜你在找的Selenium相关文章