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")
expect(locator).to_contain_text(re.compile("value1|value2"))
expect(page.locator("ul > li")).to_contain_text(["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"))
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属性
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")
expect(locator).to_contain_text(re.compile("value1|value2"))
expect(page.locator("ul > li")).to_contain_text(["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")])