Python + Playwright(4): 等待元素至指定状态
前言
- 当我们在进行UI自动化测试的时候,保证测试的稳定性至关重要。网页中的元素可能处于不同的状态,有些可能在页面加载完成之前不在DOM中,需要某些操作后才会出现,而其他元素可能一直存在于DOM中,但最初处于隐藏状态,需要通过操作才能使其可见。
- 如果在执行脚本时没有考虑到元素的状态,很可能导致脚本执行失败。为了保证自动化测试的稳定性,我们需要确保在执行操作之前,所需的元素已经达到了指定状态。
下面我将介绍三种常用的元素等待方式:wait_for(), wait_for_selector(), 和 wait_for_element_state(),以及三者之间的优劣势。
元素等待方式
1. wait_for()
wait_for() 是先定位元素,再等待元素满足指定状态。
如果元素已满足条件,则立即返回。否则,它会等待直到超时时间到达为止。
该方法接受两个关键字参数:
- timeout:指定最大等待时间(以毫秒为单位)。默认为 30000(30秒),但可以更改。
- state:指定要等待的状态。默认为 ‘visible’。可以是 ‘attached’、‘detached’、‘hidden’ 或 ‘visible’ 中的一个。
示例代码如下: