playwright常用方法(一)

降低执行速度

#slow_mo时间单位毫秒

launch(headless=False, slow_mo=50)

快速截图

page.screenshot(path='a.png')

参数如下:

timeout:以毫秒为单位的超时时间,0为禁用超时

path:设置截图的路径

type:图片类型,默认jpg

quality:像素,不适用于jpg

omit_background: 隐藏默认白色背景,并允许捕获具有透明度的屏幕截图。不适用于“jpeg”图像。

full_page:如果为true,则获取完整可滚动页面的屏幕截图,而不是当前可见的视口。默认为`假`。

clip:指定结果图像剪裁的对象clip={'x': 10 , 'y': 10, 'width': 10, 'height': 10}

执行方法

鼠标双击

    page.dblclick()

获取元素焦点

    # 获取元素并聚焦它。 如果没有匹配的元素,则方法等待匹配元素出现在 DOM 中。

    page.focus('#su')

鼠标悬停

    # 就是鼠标放在按钮上,此方法针对那种浮框操作

    page.hover('//*[@id="u1"]/*[text()="设置"]')

鼠标点击

    page.click('//*[@id="s-user-setting-menu"]//*[text()="搜索设置"]')

设置复选框取消或选中

    # 布尔值为True,如果未选中则选中,布尔值为False是,如果未选中则就显示未选中

    page.set_checked('//*[text()="全部语言"]', False)

取消已选中复选框取

    # 确保元素是复选框或单选框。如果该元素已取消选中,则此方法立即返回

    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

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Playwright是一个用于自动化浏览器的工具,它支持多种编程语言,并提供了一组异步方法来执行各种浏览器操作。下面是一些常用Playwright异步方法的介绍: 1. `page.goto(url[, options])`:导航到指定的URL。可以通过`options`参数来设置导航的行为,例如等待页面加载完成或等待特定的网络请求。 2. `page.waitForSelector(selector[, options])`:等待页面中匹配指定选择器的元素出现。可以通过`options`参数来设置等待的超时时间和其他条件。 3. `page.click(selector[, options])`:点击页面中匹配指定选择器的元素。可以通过`options`参数来设置点击的位置、按下的键盘修饰符等。 4. `page.type(selector, text[, options])`:在页面中匹配指定选择器的输入框中输入文本。可以通过`options`参数来设置输入的速度、按下的键盘修饰符等。 5. `page.evaluate(pageFunction[, ...args])`:在页面上下文中执行给定的函数,并返回其结果。可以通过`...args`参数传递额外的参数给函数。 6. `page.waitForNavigation([options])`:等待页面导航完成。可以通过`options`参数来设置等待的超时时间和其他条件。 7. `page.screenshot([options])`:对当前页面进行截图。可以通过`options`参数来设置截图的格式、质量和保存路径。 8. `page.evaluateHandle(pageFunction[, ...args])`:在页面上下文中执行给定的函数,并返回一个可迭代的句柄。可以通过`...args`参数传递额外的参数给函数。 以上只是Playwright提供的一些常用异步方法的介绍,还有其他更多的方法可以用于实现更复杂的自动化操作。如果你有具体的问题或需要了解更多细节,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值