playwright: Assertions断言

2024-01-04 20:04

本文主要是介绍playwright: Assertions断言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

response & page 断言

  • to_be_ok()
    判断response的status code是否在200-299之间
    expect(response).to_be_ok()
  • to_have_title(str | pattern)
    判断page的title是否和指定的title一致
    expect(page).to_have_title("title string")
  • to_have_url(str | pattern)
    判断page的URL是否和指定的URL一致
    expect(page).to_have_url("url string")
  • 相应的以上断言都有not_to_**

locator断言

  • to_be_attached(bool) :判断元素在dom节点中存在
  • to_be_checked( bool) :判断元素是否checked(只有支持checked属性的才能成段断言,否则会抛出错误)
  • to_be_disabled() :断言元素是否disabled(是否有disabled属性)
  • to_be_editable( bool) : 断言元素是否可以编辑
  • to_be_empty(): 断言元素值为空 或者dom节点下无内容
  • to_be_enabled(bool): to_be_enabled(enabled=False)等价于 to_be_disabled()
  • to_be_focused() : 断言元素是否focused
  • to_be_hidden() : 断言元素不存在dom中,或者不可见
  • `to_be_in_viewport(float) :断言元素是否在当前页面可见, 可以用于断言页面锚点是否正确
  • to_be_visible(bool) :断言元素在dom中,并且可见
  • 使用示例
 <div id="ai-talk-container"></div><input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off"><input id="kw-2" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off" disable>
expect(page.locator("#ai-talk-container")).to_be_attached(timeout=100) 
expect(page.locator("#ai-talk-container")).to_be_empty() 
expect(page.locator("#kw")).to_be_editable() 
expect(page.locator("#kw")).to_be_enabled() 
expect(page.locator("#kw-2")).to_be_disabled() 
page.locator("#kw").click()
expect(page.locator("#kw")).to_be_focused() 
expect(page.get_by_role("heading", name="Reviews")).to_be_visible(timeout=100)
expect(page.get_by_role("heading", name="Reviews")).to_be_in_viewport(timeout=100)
  • to_contain_text(expected, ignore_case, timeout, use_inner_text ): 断言元素是否包含指定的值
    • expected 参数必须,可以是str, pattern, list
expect(locator).to_contain_text("substring") # 断言locator的文本是否包含substring
expect(locator).to_contain_text(re.compile("value1|value2")# 断言locator的文本是否包含value1或者value2
expect(page.locator("ul > li")).to_contain_text(["Text 1", "Text 3", "Text 4"]) # 断言li列表的值是否包含"Text 1", "Text 3", "Text 4",需要按顺序才能断言成功
expect(page.locator("ul > li")).to_contain_text(["Text 1", "Text 3", "Text 4"], ignore_case=True) # 忽略大小写
  • to_have_attribute(name, value, ignore_case, timeout): 断言元素是否有属性和值
    • name 参数必须,可以是str
    • value 参数必须,可以是str, pattern
expect(locator).to_have_attribute("src", re.compile(f".*/{img}\.png"))
  • to_have_class(expected , timeout ): 断言元素是否存在指定的class值
    • expected 参数必须,可以是str, pattern, list
expect(locator).to_have_class(re.compile("border-blue")) # 是否包含border-blue class
locator = page.locator("list > .component")
expect(locator).to_have_class(["component", "component selected", "component"])
  • to_have_count(int): 断言元素个数
  • to_have_css(str) :断言元素是否有指定的css演示
  • to_have_id(str | pattern): 断言元素的id
  • to_have_js_property((name, value, timeout): 断言元素是否有指定的JavaScript属性
    • name 和 value参数必须
  • to_have_text(expected, ignore_case, timeout, use_inner_text ): 断言元素是否有指定的文本
    - expected 参数必须,可以是str, pattern, list
expect(locator).to_have_js_property("loaded", True)
expect(locator).to_have_js_property("autocomplete", "off" )
expect(locator).to_have_text("substring") # 断言locator的文本是否等于substring
expect(locator).to_contain_text(re.compile("value1|value2")# 断言locator的文本是否等于value1或者value2
expect(page.locator("ul > li")).to_contain_text(["Text 1", "Text 3", "Text 4"]) # 断言li列表的值是否等于"Text 1", "Text 3", "Text 4",需要按顺序才能断言成功
expect(page.locator("ul > li")).to_contain_text(["Text 1", "Text 3", "Text 4"], ignore_case=True) # 忽略大小写
  • to_have_value(str| pattern):断言元素是否有指定的值
  • to_have_values(list | pattern) :断言元素是否有指定的一组值
expect(locator).to_have_value("200")
expect(locator).to_have_values([re.compile(r"R"), re.compile(r"G")])
  • 相应的以上断言都有not_to_**

这篇关于playwright: Assertions断言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/570449

相关文章

关于断言的部分用法

1、带变量的断言  systemVerilog assertion 中variable delay的使用,##[variable],带变量的延时(可变延时)_assertion中的延时-CSDN博客 2、until 的使用 systemVerilog assertion 中until的使用_verilog until-CSDN博客 3、throughout的使用   常用于断言和假设中的

C/C++ 中的assert()宏 断言机制

ASSERT()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。   原型定义: #include <assert.h> void assert( int expre

python+selenium2学习笔记unittest-03断言

断言的方法网上归纳的很多主要有以下这些 断言语法解释assertEqual(a, b) 判断a==bassertNotEqual(a, b)判断a!=bassertTrue(x)bool(x) is TrueassertFalse(x)bool(x) is FalseassertIs(a, b)a is bassertIsNot(a, b) a is not bassertIsNone(x) x

正则表达式之:零宽断言不『消费』

正则表达式之:零宽断言不『消费』 想理解零宽断言只需要记住一句口诀:零宽断言只『占位』,不『消费』。 没错,零宽断言就是个去麦当劳写作业的小学生~ 之所以想写这篇博客是因为昨天看了@玉伯也叫射雕 的最新博文: 《正则表达式中的向后匹配》。在这篇文章中,他提到了零宽断言的相关知识,但最核心的知识点却没涉及,即:零宽断言的用法类似普通的正则子表达式(也叫做分组),但不『消费』字符串。

关于jmeter 断言结果(成功或失败表现)

1.设置断言,断言失败,查看断言结果,断言结果有两行,第二行显示失败 2.设置断言,断言成功,查看断言结果,断言结果只有一行,则表示成功

RobotFramework常用断言

01、Should Contain 、 Should Not Contain 、Should Contain x Times    包含、不包含、包含指定次数  02、Should Be Empty 、 Should Not Be Empty 为空、不为空 03、Should Be Equal 、Should Not Be Equal 相等、不相等 04、Should Be Equal

jmeter响应断言、json断言、断言持续时间、大小断言操作

在jmeter断言当中、常用的有响应断言、json断言、断言持续时间,大小断言等 一、响应断言 Apply to:断言应用的范围,这里默认,通常发出一个请求只触发一个服务器测试字段 响应文本,response响应体内的信息响应代码: 响应码,一般是200响应信息:响应码后面的返回的信息,OK,例如返回OK等响应头: 对应响应头 模式匹配规则:正则(包括、匹配、相等、否、或),默认字符串其他的使

jmeter响应断言、json断言、断言持续时间操作

一、响应断言 Apply to:断言应用的范围,这里默认,通常发出一个请求只触发一个服务器测试字段 响应文本,response响应体内的信息响应代码: 响应码,一般是200响应信息:响应码后面的返回的信息,OK,例如返回OK等响应头: 对应响应头 模式匹配规则:正则(包括、匹配、相等、否、或),默认字符串其他的使用较少,一般对响应状态和响应文本做断言(掌握这两个即可) 添加响应断言: 可以对

Playwright-强大的自动化测试神器

安装 Playwright是专门为满足端到端测试的需求创建的。Playwright支持目前所有的渲染引擎,包括:Chromium、WebKit和Firefox。在Windows、Linux和macOS上都可以使用。也可以在移动端浏览器进行测试。 pip安装 pip install palywright 测试示例 下面是一个简单的测试脚本示例。 import refrom playw

Python + Playwright(19):监听事件 移除监听事件「详细介绍」

Python + Playwright(19):监听事件 & 移除监听事件 前言一、 监听事件1.1 `close` - 页面关闭事件1.2 `console` - 控制台消息事件1.3 `crash` - 页面崩溃事件1.4 `dialog` - 对话框事件1.5 `domcontentloaded` - DOM 内容加载事件1.6 `download` - 下载事件1.7 `filech