您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        本篇内容主要讲解“python playwright自动等待和断言举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python playwright自动等待和断言举例分析”吧!
操作元素的一系列方法,只要调用了测试夹函数page,就能引出操作元素的方法:
import pytest
from playwright.sync_api import Page
def test_example(page: Page):
    page.goto("https://www.baidu.com")
    page.hover('//*[@id="u1"]/*[text()="设置"]')
    page.click('//*[@id="s-user-setting-menu"]//*[text()="搜索设置"]')
    page.set_checked('//*[text()="全部语言"]', False)
    assert page.title() == "百度一下,你就知道"
    page.close()
if __name__ == '__main__':
    pytest.main(["-v", "test_example.py"])playwright对元素执行前,会进行一系列可操作性检查,以确保这些行动按预期运行。它会自动等待所有相关检查通过,然后才执行请求的操作。如果所需的检查未在给定的范围内通过则抛出timeout,操作将失败并显示TimeoutError。
执行方法如下:
page.dblclick()
# 获取元素并聚焦它。 如果没有匹配的元素,则方法等待匹配元素出现在 DOM 中。
    page.focus('#su')# 就是鼠标放在按钮上,此方法针对那种浮框操作
    page.hover('//*[@id="u1"]/*[text()="设置"]')page.click('//*[@id="s-user-setting-menu"]//*[text()="搜索设置"]')page.click('//*[@id="s-user-setting-menu"]//*[text()="搜索设置"]')# 确保元素是复选框或单选框。如果该元素已取消选中,则此方法立即返回
    page.uncheck('//*[text()="仅简体中文"]')# 此方法是聚焦元素,input输入值后触发事件。您也可以传递一个空字符串来清除输入字段。
    page.fill("#kw", "秦时明月")# 返回元素属性值
    page.get_attribute('#kw', 'name')page.inner_text('//*[@id="s-hotsearch-wrapper"]//*[@data-index="2"]//*[@class="title-content-title"]')page.inner_html('//*[@id="s-hotsearch-wrapper"]//*[@data-index="2"]')page.text_content('//*[@id="s-hotsearch-wrapper"]//*[@data-index="2"]')# baidu.png存放至当前文件夹下的cases文件夹种 page.screenshot(path='./cases/baidu.png')
# 为文本中的每个字符发送一个keydown、keypress/input和keyup事件。
    page.type("#kw", "hello")# 获取按钮元素,输入键盘操作
    page.press('#su', 'Enter')# 与值匹配的单个选择 page.select_option(\"select#colors\", \"blue\") # 与标签匹配的单个选择 page.select_option(\"select#colors\", label=\"blue\") # 多项选择 page.select_option(\"select#colors\", value=[\"red\", \"green\", \"blue\"])
   # type可传:"click", "dragstart"
    page.dispatch_event('#su', 'click')# 获取文本内容,进行断言
    content = page.text_content('[target="_blank"]:first-child')
    assert content == "新闻"# 获取内部文字,进行断言
    text = page.inner_text('[target="_blank"]:first-child')
    assert text == "新闻"# 获取属性值,进行断言
    attribute = page.get_attribute('#su', 'value')
    assert attribute == "百度一下"page.hover('//*[@id="u1"]/*[text()="设置"]')
    page.click('//*[@id="s-user-setting-menu"]//*[text()="搜索设置"]')
    # 复选框状态,进行断言
    checked = page.is_checked('//*[text()="全部语言"]')
    assert checked# JS表达式,进行断言
    js_content = page.locator('[data-index="4"]>a>[class="title-content-title"]').text_content()
    assert js_content == "长津湖超战狼2成中国影史票房冠军"# 内部 HTML ,进行断言
    html = page.inner_html('[class="hot-title"]')
    assert "百度热搜" in html# 元素可见性 ,进行断言
    visible = page.is_visible('#su')
    assert visible# 启用状态(元素存在可点击) ,进行断言
    enabled = page.is_enabled('#su')
    assert enabledassert page.title() == "百度一下,你就知道"
playwright还提供了自定义断言,这一块我还没有实操过,有兴趣可的可继续研究下:
# 断言本地存储值
user_id = page.evaluate("() => window.localStorage.getItem('user_id')")
assert user_id
# 断言输入元素的值
value = page.locator('#search').input_value()
assert value == 'query'
# 断言计算样式
font_size = page.locator('div').evaluate('el => window.getComputedStyle(el).fontSize')
assert font_size == '16px'
# 断言列表长度
length = page.locator('li.selected').count()
assert length == 3到此,相信大家对“python playwright自动等待和断言举例分析”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。