本文主要是介绍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()
: 断言元素是否focusedto_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)
: 断言元素的idto_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断言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!