首页 > 其他分享 >软件测试---自动化测试(黑盒测试)

软件测试---自动化测试(黑盒测试)

时间:2024-03-28 15:29:47浏览次数:24  
标签:xpath iframe 元素 --- findElement 测试 div id 软件测试

一 . 获取元素定位的方法:

selenium 主要提供了8种定位元素方法:

  • 1. findElement( By.id( 元素的id属性名称 ) );

  • 2. findElement( By.name( 元素的name属性名称 ) );

  • 3. findElement( By.linkText( a标签内的全部文本内容(精确查询) ) );
  • 4. findElement( By.partiallinkText( a标签内的部分文本内容(模糊查询) ) );
  • 5. findElement( By.tagName( 标签名称(a标签填a,input标签填input) ) );
  • 6. findElement( By.className( 元素的class属性名称 ) );
  • 7. findElement( By.cssSelector(元素的selector值(浏览器F12点击标签可以直接复制 ) ) );
  • 8. findElement( By.xpath( 元素的xpath路径  ) );
1. findElement( By.id( 元素的id属性名称 ) );
<a id="reg-cs" class="regist-btn" href="/logout.html">退出</a>

使用 findElement( By.id("reg-cs") );定位

2. findElement( By.name( 元素的name属性名称 ) );
<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>

使用 findElement( By.name( "reg-ht" ) ); 定位

3. findElement( By.linkText( a标签内的全部文本内容(精确查询) ) );
<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>

 使用 findElement( By.linkText( "退出" ) );定位

4 . findElement( By.partiallinkText( a标签内的部分文本内容(模糊查询) ) );

<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>

 使用 findElement( By.partiallinkText( "退" ) );定位

 或

 使用 findElement( By.partiallinkText( "出" ) );定位

5 . findElement( By.tagName( 标签名称(a标签填a,input标签填input) ) );
<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>

 使用 findElement( By.tagName( "a" ) );定位

6 . findElement( By.className( 元素的class属性名称 ) );
<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>

 使用 findElement( By.className( "regist-btn" ) );定位

7 . findElement( By.cssSelector(元素的selector值(浏览器F12点击标签可以直接复制 ) ) );
<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>

使用 findElement( By.cssSelector( "#_widget_849 > div > div.user-info > div.hello.clearfix > a.regist-btn" ) );定位

8 . findElement( By.xpath( 元素的xpath路径  ) );

 使用 findElement( By.xpath( "/html/body/div[4]/div/div[2]/div/div/div/div[1]/div[2]/a[2]" ) );定位

二 . 获取到元素定位后的常用方法:

selenium 主要提供了5种 “常用” 获取到元素定位后的常用方法:

  • 1 . findElement( By.id( 元素的id属性名称 ) ).click()( 点击按钮 )

  • 2 . findElement( By.id( 元素的id属性名称 ) ).clear();  ( 清空输入框的数据 )

  • 3 . findElement( By.id( 元素的id属性名称 ) ).sendkeys( 需要输入的值 ); ( 输入 )

  • 4 . findElement( By.id( 元素的id属性名称 ) ).getText(); ( 获取文本内容 )

  • 5 . findElement( By.id( 元素的id属性名称 ) ).getAttribute("textContent"); (获取隐藏属性的文本内容)

 

三 . 进出iframe

1 . 进入iframe

  • 1 . switchTo().frame(0);  ( 根据索引进入 )

       ( 0代表iframe的索引为第几个 ) 

  • 2 . switchTo().frame( findElement(By.xpath( ) ) );  ( 根据xpath路径进入 )

       ( findElement(By.xpath( ) )代表利用元素定位法的iframe  xpath路径 ) 

  • 2 . switchTo().frame( findElement(By.Id( ) ) );  ( 根据Id进入 )
  • 3 . switchTo().frame( findElement(By.name( ) ) );  ( 根据name进入 )
  • 4 . switchTo().frame( findElement(By.className( ) ) );  ( 根据className进入 )
  • 5 . switchTo().frame( findElement(By.tagName( ) ) );  ( 根据tagName进入 )

2 . 退出iframe

  • 1 . switchTo().defaultContent();  ( 退出 )

3 . 进入动态iframe

  • 1 . switchTo().frame(0);  ( 根据索引进入 )

       ( 0代表iframe的索引为第几个 ) 

  • 2 . findElement(By.xpath( "/html/body/div[4]/div/div[2]" ) )

           WebElement ifame = div.findElement(By.xpath("/html/body/div[4]/div/div[2]/iframe"));

           switchTo().frame( ifame );

       ( 利用元素定位法定位到iframe的父级div,然后利用父级div进入iframe , 最后进入iframe ) 

四 . 断言或做校验方法

1 . 断言用:

  • 1 . Assert.assertTrue( Three.aftText( text ).conteans("退出") ); ( 做断言用)

       ( text 代表利用元素定位法+getText( )获得的 text 文本字符串 ,"退出"代表断言的结果 ) 

  • 2 . Assert.assertEquals(  Three.aftText( text )  ,  "退出"  );  ( 做断言用)       

       ( text 代表利用元素定位法+getText( )获得的 text 文本字符串 ,"退出"代表断言的结果 ) 

2 . 单元测试做数据校验用:

2.1 返回结果为字符串时 : 
  • 1 . Assert.assertTrue( Three.isOneLine(1,2).conteans("退出") ); ( 做校验 )

       ( Three.isOneLine(1,2)代表调用类的方法返回的值 ,"退出"代表调用类应获得的值) 

  • 2 . Assert.assertEquals(  Three.isOneLine(1,2)  ,  "退出"  );  ( 做校验 )       

      ( Three.isOneLine(1,2)代表调用类的方法返回的值 ,"退出"代表调用类应获得的值) 

2.2 返回结果为 boolean 布尔类型时 :

  • 1 . Assert.assertTrue( Three.isOneLine(1,2) ); ( 做校验 ) 

      ( Assert.assertTrue( Three.isOneLine(1,2) )  判断返回的值是否为True ) 

  • 2 . Assert.assertFalse( Three.isOneLine(1,2) ); ( 做校验 ) 

      ( Assert.assertFalse( Three.isOneLine(1,2) )  判断返回的值是否为False ) 

标签:xpath,iframe,元素,---,findElement,测试,div,id,软件测试
From: https://blog.csdn.net/chuanchuankk/article/details/137067579

相关文章

  • 0518--台球俱乐部会员网之“NABCD模型”
    一、NABCDNeed(需求):目标用户可能需要一个方便的平台来获取关于台球俱乐部的信息,包括比赛安排、会员活动、教学资源等。这意味着网站需要提供清晰明了的信息架构,让用户能够快速找到所需信息,并且信息更新要及时。用户可能需要与其他会员进行交流和互动,分享经验、技巧,建立社交关系......
  • hbase - [06] rowkey的设计
     HBase是三维有序存储的,通过rowkey(行键),columnkey(column family和qualifier)和TimeStamp(时间戳)这三个维度可以对HBase中的数据进行快速定位。HBase中rowkey可以唯一标识一行记录,在HBase查询的时候,有下列几种方式:1、通过get方式,指定rowkey获取唯一一条记录2、通过scan方式,设置......
  • C语言---文件操作
    1.文件的打开和关闭-----打开 fopen,关闭fcloseintmain(){FILE*fp=fopen("D:/a.txt","r");if(fp==NULL){printf("文件打开失败\n");return-1;}printf("文件打开成功:%p\n",fp);fclose(......
  • 设计模式DP-原型模式
    #include<stdio.h>#include<string.h>#include<stdlib.h>//定义抽象接口typedefstructinterface_t{ structinterface_t*(*clone)(void*obj); void(*set)(void*obj,constchar*name,intage); void(*show)(void*obj); charname[32];......
  • ETL工具-nifi干货系列 第五讲 处理器GenerateFlowFile
    1、今天我们一起来学习处理器GenerateFlowFile。这个处理器创建带有随机数据或自定义内容的FlowFiles。GenerateFlowFile对于负载测试、配置和模拟非常有用。从工具栏拖动处理器到画布,然后选择GenerateFlowFile即可。 2、点击add按钮或者双击 GenerateFlowFile可将此处理器......
  • 挑战程序设计竞赛 2.6章习题 poj 3421 X-factor Chains
    https://vjudge.net/problem/POJ-3421#author=GPT_zhGivenapositiveintegerX,anX-factorchainoflengthmisasequenceofintegers,1=X0,X1,X2,…,Xm=XsatisfyingXi<Xi+1andXi|Xi+1wherea|bmeansaperfectlydividesintob.Nowwea......
  • SVG描边 - CSS3实现动画绘制矢量图
    使用SVG的stroke-dasharray及stroke-dashoffset,结合CSS3animation实现画笔绘制矢量图的动画效果,如下:html<svgxmlns="http://www.w3.org/2000/svg"pointer-events="none"class="leaflet-zoom-animated"width="1452"heigh......
  • AI-TestOps —— 软件测试工程师的一把利剑
    1.测试行业趋势随着数字化转型浪潮的汹涌推进,软件测试行业在2024年迎来了革命性的进步。软件测试不仅是软件开发生命周期中的重要环节,更是创新速度和竞争力的关键因素。传统的软件测试正经历着翻天覆地的变化。自动化测试工具的普及、云测试平台的兴起、AI与机器学习技术的应用......
  • 软件项目管理全套通用模板(规格说明书~详细设计~测试计划~验收报告)
     前言:在软件开发过程中,文档资料是非常关键的一部分,它们帮助团队成员理解项目需求、设计、实施、测试、验收等各个环节,确保项目的顺利进行。以下是针对您提到的各个阶段的文档资料概述:所有资料获取:点击获取开发阶段需求规格说明书:详细描述了软件系统的功能需求、非功能......
  • SAP Fiori开发中的JavaScript基础知识1 - 背景介绍
    1.背景开发SAPFiori应用程序过程中,不可避免的要用到JavaScript去增强或影响UI的行为。对于传统ABAPer,JavaScript的语言特性和风格与ABAP是有较大的不同的。接下来的一段时间,我会尝试整理在SAPFiori开发过程中会常用到的一些JavaScript基础知识,并结合介绍在SAPBAS中开发Fio......