Playwright上手学习4

Playwright提供自动等待机制,在执行元素操作前进行一系列可操作性检查,包括Attached、Visible、Stable、Enabled和Editable状态。这避免了Selenium的超时问题,提高了脚本稳定性。此外,还支持强制执行和断言方法来检查元素状态,确保测试准确无误。
摘要由CSDN通过智能技术生成

自动等待

  Playwright在最目标元素操作之前会对其进行一系列可操作性检查,确保这些预期操作能正常运行。Playwright会自动等待所有相关检查通过,之后再执行请求操作。如果在规定的时间内没有通过所有检查,则会操作失败并显示TimeoutError

  比如,对于 page.click(selector, **kwargs),Playwright会在之前进行如下检查:

   - 目标元素依附于DOM中
   - 目标元素可见
   - 目标元素是稳定的,如没有加载动画等
   - 目标元素可以触发事件,没有被其它元素遮挡
   - 目标元素已启用(Enabled)

Playwright的自动等待机制解决了Selenium的痛点,无需二次开发,提高脚本稳定性

下面是所有需要进行可操作性检查的Action列表
在这里插入图片描述

Forcing action

  一些actions,比如page.click(selector, **kwargs)支持禁用非必要的可操作性检查的强制选项。

断言

  同样也可以使用以下断言方法来检查目标元素的可操作性。虽然不是非必需,但可以帮助我们确认在进行某些之后,元素达到目标期望状态:

   - element_handle.is_checked()
   - element_handle.is_disabled()
   - element_handle.is_editable()
   - element_handle.is_enabled()
   - element_handle.is_hidden()
   - element_handle.is_visible()
   - page.is_checked(selector, **kwargs)
   - page.is_disabled(selector, **kwargs)
   - page.is_editable(selector, **kwargs)
   - page.is_enabled(selector, **kwargs)
   - page.is_hidden(selector, **kwargs)
   - page.is_visible(selector, **kwargs)
   - locator.is_checked(**kwargs)
   - locator.is_disabled(**kwargs)
   - locator.is_editable(**kwargs)
   - locator.is_enabled(**kwargs)
   - locator.is_hidden(**kwargs)
   - locator.is_visible(**kwargs)

元素可操作性检查,名词解释

Attached

  目标元素与Document或ShadowRoot连接时,认为其是Attached

Visible

  目标元素具有非空边界框且没有样式属性visibility:hidden时,认为其是Visible。注意,零尺寸或display:none的元素不被视为可见

Stable

  目标元素在至少两个连续动画帧中保持相同的边界框时,认为其是Stable。

Enabled

  目标元素为<button>, <select>, <input> ,<textarea>时,且没有disabled属性值时,认为其是Enabled

Editable

  目标元素在Enabled时,且没有readonly属性,认为其是Editable

Receives Events​

  当元素在动作点是指针事件的命中目标时,被认为接收指针事件。例如,当点击(10;10)时,Playwright 检查是否有其他元素(通常是叠加层)将捕获 (10;10) 处的点击。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值