文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python playwright自动等待和断言举例分析

2023-06-21 21:14

关注

本篇内容主要讲解“python playwright自动等待和断言举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python playwright自动等待和断言举例分析”吧!

自动等待及元素执行方法

操作元素的一系列方法,只要调用了测试夹函数page,就能引出操作元素的方法:

import pytestfrom playwright.sync_api import Pagedef 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"]')

获取内部HTML

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')

设置select下拉选项

# 与值匹配的单个选择    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表达式,进行断言    js_content = page.locator('[data-index="4"]>a>[class="title-content-title"]').text_content()    assert js_content == "长津湖超战狼2成中国影史票房冠军"

内部HTML断言

# 内部 HTML ,进行断言    html = page.inner_html('[class="hot-title"]')    assert "百度热搜" in html

元素可见断言

# 元素可见性 ,进行断言    visible = page.is_visible('#su')    assert visible

启动状态断言

# 启用状态(元素存在可点击) ,进行断言    enabled = page.is_enabled('#su')    assert enabled

直接对比断言

assert 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自动等待和断言举例分析”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯