python+playwright 学习-71 expect 断言设置timeout 超时和自定义错误内容
  iKXeBmqdRgYF 2023年11月05日 115 0

前言

playwright 提供了一个 expect方法 用于断言,还可以设置超时时间。

expect 使用

断言

描述

expect(locator).to_be_checked()

Checkbox is checked

expect(locator).to_be_disabled()

Element is disabled

expect(locator).to_be_editable()

Element is enabled

expect(locator).to_be_empty()

Container is empty

expect(locator).to_be_enabled()

Element is enabled

expect(locator).to_be_focused()

Element is focused

expect(locator).to_be_hidden()

Element is not visible

expect(locator).to_be_visible()

Element is visible

expect(locator).to_contain_text()

Element contains text

expect(locator).to_have_attribute()

Element has a DOM attribute

expect(locator).to_have_class()

Element has a class property

expect(locator).to_have_count()

List has exact number of children

expect(locator).to_have_css()

Element has CSS property

expect(locator).to_have_id()

Element has an ID

expect(locator).to_have_js_property()

Element has a JavaScript property

expect(locator).to_have_text()

Element matches text

expect(locator).to_have_value()

Input has a value

expect(locator).to_have_values()

Select has options selected

expect(page).to_have_title()

Page has a title

expect(page).to_have_url()

Page has a URL

expect(api_response).to_be_ok()

Response has an OK status

to_be_checked()使用示例

from playwright.sync_api import expect

locator = page.get_by_label("Subscribe to newsletter")
expect(locator).to_be_checked()

to_be_visible()使用示例



from playwright.sync_api import expect

locator = page.locator('.my-element')
expect(locator).to_be_visible()

设置超时

如下图中的提示语,点击按钮后,可能在1秒内就会出现提示框。

python+playwright 学习-71 expect 断言设置timeout 超时和自定义错误内容_自定义异常

默认情况下,断言超时时间是5秒钟, 你也可以自定义超时时间.

from playwright.sync_api import expect


def test_foobar(page: Page) -> None:
    # ......
    expect(page.get_by_text("操作成功")).to_be_visible(timeout=3000)

在conftest.py 中设置全局 expect 超时

from playwright.sync_api import expect

expect.set_options(timeout=8000)

自定义异常消息

expect 中添加第二个参数,设置自定义报错消息内容

expect(page.get_by_text("Name"), "should be logged in").to_be_visible()

断言报错后显示

def test_foobar(page: Page) -> None:
>       expect(page.get_by_text("Name"), "should be logged in").to_be_visible()
E       AssertionError: should be logged in
E       Actual value: None 
E       Call log:
E       LocatorAssertions.to_be_visible with timeout 5000ms
E       waiting for get_by_text("Name")
E       waiting for get_by_text("Name")

tests/test_foobar.py:22: AssertionError



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  tqf4faUYHHCA   2023年12月23日   94   0   0 sedpythonPythonsed
iKXeBmqdRgYF