首页 > 其他分享 >软件测试 | Selenium基础

软件测试 | Selenium基础

时间:2023-09-04 16:03:13浏览次数:60  
标签:Selenium 基础 命令 HTML 参数 测试 页面 软件测试

Selenium命令——Selenese

Selenium提供一系列命令,可以用你能想到的所有方式全面测试你的Web应用系列。这些命令通常被称为Selenese。这些测试命令事实上构成了一种测试语言。

使用Selenese,用户可以通过HTML tags测试UI元素是否存在,测试特殊文本,测试死链接、输入框、下拉列表、提交表单和数据表等。通过扩展Selenium命令支持测试窗口尺寸、鼠标位置、警告、Ajax控件、弹出窗口、事件控制和其他Web应用特性。可以通过如下链接在线查看所在Selenium命令:http://release.seleniumhq.org/selenium-core/1.0.1/reference.html,命令会告诉Selenium工具要做什么,它有三种子类型:Actions、Accessors和Assertions。

(1)Actions决定Selenium工具会怎样操作Web应用系统。例如“点击某个链接”和“选择某个下拉选项”。如果一个Action失败,或者发生了错误,当前测试的执行会被终止。

(2)Accessors检查系统的当前状态,并将结果存放在变量中。例如“storeTitle”命令。它们也被用来自动生产断言。

(3)Assertions类似于Accessors,不过它们验证系统是否遵从于期望的表现。例如“确保页面标题是X”,“验证多选项框X被选中”。所有的Selenium Assertions可以归结为三种模式:“assert”、“verify”和“waitFor”。当一个“assert”失败,测试将被终止。当一个"verify"失败,测试将继续执行,并在日志中记录失败。通常使用“assert”确保测试在正确的页面上运行,接下来使用“verify”来验证表单数据、页签等。“waitFor”命令等待某些条件变为真(在Ajax应用中特别有用)。当条件变为真后,它将立刻成功。在预设时间内条件没有变为真,它将失败并停止测试执行。

Selenium脚本语法

Selenium的verifyText命令有两个参数,如表2-2所示。

命令

参数

参数

verifyText

//div//a[2]

Login

Selenium命令的参数并不总是必需的,它依赖于命令。命令可能要求两个参数,或者一个参数,甚至一个参数也不要。

命令

参数

参数

goBackAndWait

verifyTextPresent

Welcome to My Home Page

type

id=phone

(555)666-7066

type

id=address1

${myVariableAddress}

在Selenium API速查手册中详细描述了每一个命令所需要的参数。参数有很多种,但典型参数如下:

Locator用于定位页面上的元素;

text pattern用于验证或者断言期望的页面内容;

text pattern和selenium variable用于在输入框中输入文本,或者在下拉选项列表选择一个选项。

Selenium-IDE执行的Selenium脚本,通常使用HTML文本格式存储。在HTML文本文件中使用HTML表格存储命令,命令由三列组成。第一列标识Selenium命令,第二列标识目标,最后一列保存值。根据选择Selenium命令不同,第二、三列可能并不需要有值。表中的每一行代表一条Selenium命令。下面举例,测试打开一个页面,验证页面标题,接着验证某些页面内容:

<table>
    <tr><td>open</td><td></td><td>/download/<td></tr>
    <tr><td>assertTitle</td><td></td><td>Downloads</td></tr>
    <tr><td>verifyText</td><td>//h2</td><td>Downloads</td><tr>
</table>

用浏览器打开Selenium脚本对应的HTML文档,如表2-4所示。

命令

标识目标

保存值

open

/doenload/

assertTitle

Downloads

verifyText

//h2

Downloads

标签:Selenium,基础,命令,HTML,参数,测试,页面,软件测试
From: https://blog.51cto.com/u_15605684/7351722

相关文章

  • 软件测试 | Selenium验证页面元素
    验证页面上的UI元素,是你在自动化测试案例过程中最常用到的特性。Selenese允许通过多种方式验证UI元素。了解这些不同验证方式非常重要,因为它们决定了你实际正在测试什么。举例,你是否正在测试如下情况:(1)一个UI元素存在于页面上某个位置;(2)特别稳定存在于页面上某个位置;(3)特定文本存在于......
  • 软件测试 | Web自动化测试
    当前绝大多数企业应用系统都是基于Web的应用系统,人们可以通过Internet浏览器便捷地访问它们。在可以预见地将来,“云计算”会进一步推动这种趋势。当前很多组织和公司,采用持续改进的开发模式来应对这种趋势。在持续改进开发模式中(例如敏捷和极限开发模式),需要不断地进行迭代测试。传......
  • 位运算基础
    目录位运算与、或、异或取反左移和右移复合赋值位运算符关于优先级位运算的应用有关2的幂的应用取绝对值取两个数的最大/最小值判断两非零数符号是否相同交换两个数操作一个数的二进制位汉明权重位移实现LSB置零操作x&-x实现n&(n-1)实现构造汉明权重递增的排列位运算......
  • SpringBoot--基础
    SpringBoot--基础SpringBoot的设计目的是用来简化Spring应用的初始搭建以及开发过程idea创建springboot入门步骤(需要idea联网)创建一个空项目之后再项目构建中添加springboot相关配置本处的springboot版本为2.7.14,如果maven报错可以自己修改一下版本,最新的3.0版本......
  • AUTOSAR基础篇之OS-00
    OS主要是为我们解决了以下几个基本问题:改变各任务的执行频率;改变各任务的执行时间;设定各任务的优先级,保证高优先级任务能够及时执行;任务切换时的现场保护与恢复;共享资源的安全访问机制等;  首先,AUTOSAROS是基于OSEKOS继承发展而来,所以上述的OSEKOS的基本......
  • Java语言基础知识全总结
    一.Java的优点1.      跨平台性。一次编译,到处运行。Java编译器会将Java代码编译成能在JVM上直接运行的字节码文件,C++会将源代码编译成可执行的二进制代码文件,所以C++执行速度快2.      纯面向对象。Java所有的代码都必须在类中书写。C++兼具面向对象和面向过程的特......
  • 分享一个Python字符串替换的基础题目(下篇)
    大家好,我是皮皮。一、前言上一篇文章,【瑜亮老师】和【凡人不烦人】引申了下字符串处理的题目,如下所示:扩展一下,下面的结果是什么:strs='abbacba'print(strs.lstrip('ab'))print(strs.rstrip('ab'))二、实现过程这里【FANG.J】还是有点东西的,全部都回答正确了。说明是完......
  • 微信小程序开发基础知识一
    小程序和普通前端网页开发的区别1、运行环境:微信小程序是在微信内部运行的,而普通前端网页是在浏览器中运行的。这意味着微信小程序必须依赖微信提供的运行时环境,而普通前端网页可以在不同的浏览器上运行。因此,微信小程序开发需要专门的开发工具和技术栈。2、开发语言:微信小程序主......
  • 面向对象基础知识
    面向对象思想与方法:面向对象思想是一种软件开发的思维方式,它将现实世界中的事物抽象成对象,并通过对象之间的交互来实现系统的功能。面向对象思想有以下几个核心概念:类(Class):类是对象的模板,描述了对象的属性和行为。例如,我们可以定义一个名为"Person"的类,用于表示人的属性(如姓名、年......
  • networkX-01-基础
    创建一个图Graph是由一组节点和节点对(边)组成的。#创建一个没有节点和边的空图。importnetworkxasnxG=nx.Graph()01节点图G可由多种方式生成。NetWorkX中包含许多图形生成函数(graphgeneratorfunctions),用于读取和写入多种格式的图形。方式1:一次添加一个节点G.......