- WebdriverIO 教程
- WebdriverIO - 主页
- WebdriverIO - 简介
- WebdriverIO - 先决条件
- WebdriverIO - 架构
- WebdriverIO - NodeJS 入门
- WebdriverIO - NPM 的安装
- WebdriverIO - VS 代码安装
- WebdriverIO - Package.json
- WebdriverIO - 摩卡安装
- Selenium 独立服务器安装
- WebdriverIO - 配置文件生成
- WebdriverIO - VS Code 智能感知
- WebdriverIO - Wdio.conf.js 文件
- WebdriverIO - Xpath 定位器
- WebdriverIO - CSS 定位器
- WebdriverIO - 链接文本定位器
- WebdriverIO - ID 定位器
- WebdriverIO - 标签名称定位器
- WebdriverIO - 类名定位器
- WebdriverIO - 名称定位器
- Expect 断言声明
- WebdriverIO - 快乐路径流
- WebdriverIO - 通用浏览器命令
- WebdriverIO - 处理浏览器大小
- WebdriverIO - 浏览器导航命令
- 处理复选框和下拉菜单
- WebdriverIO - 鼠标操作
- 处理子窗口/弹出窗口
- WebdriverIO - 隐藏元素
- WebdriverIO - 框架
- WebdriverIO - 拖放
- WebdriverIO - 双击
- WebdriverIO - Cookie
- WebdriverIO - 处理单选按钮
- webelements 上的 Chai 断言
- WebdriverIO - 多个窗口/选项卡
- WebdriverIO - 滚动操作
- WebdriverIO - 警报
- WebdriverIO - 调试代码
- WebdriverIO - 捕获屏幕截图
- WebdriverIO - JavaScript 执行器
- WebdriverIO - 等待
- WebdriverIO - 并行运行测试
- WebdriverIO - 数据驱动测试
- 从命令行参数运行测试
- 使用 Mocha 选项执行测试
- 从 Allure 生成 HTML 报告
- WebdriverIO 有用资源
- WebdriverIO - 快速指南
- WebdriverIO - 有用的资源
- WebdriverIO - 讨论
WebdriverIO - 断言的预期声明
要将 WebdriverIO 用作自动化测试工具,我们需要检查点来帮助我们判断测试是否通过或失败。WebdriverIO 中有各种可用的断言,我们可以使用它们来验证测试是否已成功验证某个步骤。
在断言中,我们可以将测试的预期结果与实际结果进行比较。如果两者相似,则测试应该通过,否则测试应该失败。WebdriverIO 中的expect 语句可以应用于浏览器、模拟对象或元素。
我们必须添加一个名为 Chai 的 NodeJS 库。Chai 库包含用于断言的期望语句。
我们必须在代码中添加以下语句来实现 Chai 断言 -
const e = require('chai').expect
应用于浏览器的断言
这些断言如下:
获取网址
它检查浏览器是否打开了特定页面。语法如下 -
expect(browser).toHaveUrl('https://www.tutorialspoint.com/index.htm')
包含 URL
它检查页面的 URL 是否具有特定值。
句法
语法如下 -
expect(browser).toHaveUrlContaining('tutorialspoint')
获取网址
它检查页面是否具有特定标题。
句法
语法如下 -
expect(browser).toHaveTitle('Terms of Use - Tutorialspoint')
应用于元素的断言
这些断言如下:
待显示
它检查元素是否显示。
句法
语法如下 -
const e = $('#loc') expect(e).toBeDisplayed()
存在
它检查元素是否存在。
句法
语法如下 -
const e = $('#loc') expect(e).toExist()
在场
它检查元素是否存在。
句法
语法如下 -
const e = $('#loc') expect(e).toBePresent()
存在
它类似于 toExist。
专注
它检查元素是否获得焦点。
句法
语法如下 -
const e = $('#loc') expect(e).toBeFocussed()
具有属性
它检查元素属性是否具有特定值。
句法
语法如下 -
const e = $('#loc') expect(e).toHaveAttribute('name', 'search')
具有属性
它类似于 toExist。
包含属性
它检查元素属性是否包含特定值。
句法
语法如下 -
const e = $('#loc') expect(e).toHaveAttributeContaining('name', 'srch')
拥有元素类
它检查元素是否具有特定的类名。
句法
语法如下 -
const e = $('#loc') expect(e).toHaveElementClass('name', { message: 'Not available!', })
toHaveElementClassContaining 包含元素类
它检查元素类名称是否包含特定值。
句法
语法如下 -
const e = $('#loc') expect(e).toHaveElementClassContaining('nam')
拥有元素属性
它检查元素是否具有特定属性。
句法
语法如下 -
const e = $('#loc') expect(e).toHaveElementProperty('width', 15) //verify negative scenario expect(e).not.toHaveElementProperty('width', 20)
具有价值
它检查输入元素是否具有特定值。
句法
语法如下 -
const e = $('#loc') expect(e).toHaveValue('Selenium', { ignoreCase: false})
具有价值
它检查输入元素是否包含特定值
句法
语法如下 -
const e = $('#loc') expect(e).toHaveValueContaining('srch')
可点击
它检查元素是否可点击。
句法
语法如下 -
const e = $('#loc') expect(e).toBeClickable()
成为残疾人
它检查元素是否被禁用。
句法
语法如下 -
const e = $('#loc') expect(e).toBeDisabled() //verify negative scenario expect(e).not.toBeEnabled()
待启用
它检查某个元素是否已启用。
句法
语法如下 -
const e = $('#loc') expect(e).toBeEnabled()
待选
它与 toBeEnabled 相同。
被检查
它与 toBeEnabled 相同。
获得参考
它检查链接元素是否具有特定的链接目标。
句法
语法如下 -
const e = $('<a>') expect(e).toHaveHref('https://www.tutorialspoint.com/index.htm')
具有链接
它与 toHaveHref 相同。
toHref包含
它检查链接元素是否包含特定链接目标。
句法
语法如下 -
const e = $('<a>') expect(e).toHaveHrefContaining('tutorialspoint.com')
包含链接
它与 HaveHrefContaining 相同。
拥有ID
它检查元素是否具有特定的 id 属性值。
句法
语法如下 -
const e = $('#loc') expect(e).toHaveId('loc')
到有文本
它检查元素是否具有特定文本。
句法
语法如下 -
const e = $('#loc') expect(e).toHaveText('Learning WebdriverIO')
包含文本
它检查元素是否包含特定文本。
句法
语法如下 -
const e = $('#loc') expect(e).toHaveTextContaining('Learning WebdriverIO')
显示在视点中
它检查元素是否在视点内。
句法
语法如下 -
const e = $('#loc') expect(e).toBeDisplayedInViewpoint()
应用于模拟对象的断言
下面列出了断言 -
待请求
它检查是否调用了模拟。
句法
语法如下 -
const m = browser.mock('**/api/list*') expect(m).toBeRequested()
待请求时间
它检查模拟是否被调用了预期的次数。
句法
语法如下 -
const m = browser.mock('**/api/list*') expect(m).toBeRequestedTimes(2)
首先,按照标题为“使用 webdriverIO 的快乐路径流”一章中的步骤 1 到 5 进行操作,如下所示 -
步骤 1 - 安装 NodeJS。有关如何执行此安装的详细信息,请参阅标题为 NodeJS 入门的章节。
步骤 2 - 安装 NPM。有关如何执行此安装的详细信息,请参阅标题为“NPM 安装”的章节。
步骤 3 - 安装 VS Code。有关如何执行此安装的详细信息,请参阅标题为 VS Code 安装的章节。
步骤 4 - 创建配置文件。有关如何执行此安装的详细信息,请参阅标题为“配置文件生成”的章节。
步骤 5 - 创建规格文件。有关如何执行此安装的详细信息,请参阅标题为“Mocha 安装”的章节。
步骤 6 - 在创建的 Mocha 规范文件中添加以下代码。
// test suite name describe('Tutorialspoint application', function(){ //test case it('Assertion with expect', function(){ // launch url browser.url('https://www.tutorialspoint.com/about/about_careers.htm') //identify element with link text then click $("=Terms of Use").click() browser.pause(1000) //verify page title with assertion expect(browser).toHaveTitleContaining('Terms of Use - Tuter') }); });
使用以下命令运行配置文件 - wdio.conf.js 文件 -
npx wdio run wdio.conf.js
有关如何创建配置文件的详细信息将在标题为 Wdio.conf.js 文件的章节和标题为配置文件生成的章节中详细讨论。
您的计算机上将出现以下屏幕 -
命令执行成功后,我们发现结果为1失败。由于预期:是使用条款 - Tuter,而收到的:输出是使用条款 - Tutorialspoint。
此外,WebdriverIO Expect 语句突出显示了 Expected: 和 Received: 文本不匹配的文本部分。