当前位置: 首页 > news >正文

Playwright for Python:断言

一、支持的断言

Playwright支持以下几种断言:

断言描述
expect(locator).to_be_checked()复选框被选中
expect(locator).to_be_disabled()元素是禁用状态
expect(locator).to_be_editable()元素是可编辑状态
expect(locator).to_be_empty()容器是空的
expect(locator).to_be_enabled()元素是可用的
expect(locator).to_be_focused()元素已获取焦点
expect(locator).to_be_hidden()元素不是可见的
expect(locator).to_be_visible()元素是可见的
expect(locator).to_contain_text()元素包含文本
expect(locator).to_have_attribute()元素具有一个 DOM 属性
expect(locator).to_have_class()元素具有class属性
expect(locator).to_have_count()列表具有确切数量的子元素
expect(locator).to_have_css()元素具有 CSS 属性
expect(locator).to_have_id()元素有ID
expect(locator).to_have_js_property()元素有JS属性
expect(locator).to_have_text()元素与文本匹配
expect(locator).to_have_value()输入框具有一个值
expect(locator).to_have_values()选择框有选中的选项。
expect(page).to_have_title()页面有标题
expect(page).to_have_url()页面有URL
expect(response).to_be_ok()响应状态正常

二、为断言指定自定义的错误消息

我们可以将自定义错误消息作为 expect 函数的第二个参数进行指定,例如:

#test_demo.py
import re
from playwright.sync_api import Page, expect
import pytestdef test_gitlink_demo(page: Page):# 访问地址page.goto("https://www.gitlink.org.cn/")# 断言网页标题=GitLinkexpect(page, "检查网页标题是否正确").to_have_title(re.compile("gitlink"))# main.py
import pytest pytest.main(['--headed', '--browser=chromium', "--browser-channel=chrome"])

运行后,如果断言失败,呈现效果如下:
在这里插入图片描述

三、自定义超时时间

我们可以全局或每个断言单独指定自定义超时时间。默认超时时间为5秒。

注意:如果同时全局指定和单独给每个断言设置了自定义的超时时间,单独指定优先于全局指定。

3.1 全局指定

# conftest.pyfrom playwright.sync_api import expectexpect.set_options(timeout=10_000)

3.2 单独指定

# test_demo.pyimport re
from playwright.sync_api import Page, expect
import pytest@pytest.mark.skip_browser("webkit")
def test_gitlink_demo(page: Page):# 访问地址page.goto("")# 断言网页标题=GitLinkexpect(page, "检查网页标题是否正确").to_have_title(re.compile("gitlink"), timeout=20_000)
http://www.lryc.cn/news/156732.html

相关文章:

  • websocket--技术文档--spring后台+vue基本使用
  • day01-ES6新特性以及ReactJS入门
  • MySQL5.7慢查询实践
  • MySQL数据库的增删改查(进阶)
  • 韶音骨传导耳机好不好用,韶音的骨传导耳机怎么样
  • Nginx从安装到使用,反向代理,负载均衡
  • freertos之资源管理
  • 1.创建项目(wpf视觉项目)
  • 使用element-ui导航,进入对应的三级页面菜单保持点击状态
  • golang字符串转64位整数
  • 创作纪念日-我的第1024天
  • 【线上问题】很抱歉,如果没有 JavaScript 支持,将不能正常工作
  • 便捷、快速、稳定、高性能!以 GPU 实例演示 Alibaba Cloud Linux 3 对 AI 生态的支持 | 龙蜥技术
  • 创新科技改变城市:智慧城市建设全景展望
  • Kotlin 环境下解决属性初始化问题
  • Java复习-20-接口(3)- 代理设计模式
  • 如何远程访问Linux MeterSphere一站式开源持续测试平台
  • LinuxUbuntu安装OpenWAF
  • LeetCode 剑指offer 09.用两个栈实现队列
  • 第三方软件检测机构有哪些资质,2023年软件测评公司推荐
  • Unity的GPUSkinning进一步介绍
  • Mysql redolog
  • 【设计模式】Head First 设计模式——桥模式 C++实现
  • CESM2代码下载
  • 编写OpenCL程序的基本步骤
  • 计算机网络之TCP/IP协议第一篇:网络基础知识
  • 虚拟机扩容
  • Linux下的系统编程——进程间的通信(九)
  • Qt QtableWidget、QtableView表格删除选中行、删除单行、删除多行
  • 【代码随想录day24】不同的二叉搜索树