Playwright中page.reload([options])方法的详细作用及用法是什么?
Playwright
page.reload() 方法详解 功能说明
page.reload() 是 Playwright 提供的页面刷新API,行为和浏览器地址栏旁的刷新按钮完全一致,会重新请求当前页面的所有资源、重新渲染DOM并执行页面脚本,默认会等待页面加载完成后再返回结果。

可配置参数
所有参数均为可选,传入对象形式配置即可:
timeout:刷新操作的超时时间,单位为毫秒,默认读取全局配置的navigationTimeout值,超时未完成会抛出错误,设为0时禁用超时判断waitUntil:指定刷新操作的完成判定节点,可选值如下:load:默认值,等待页面load事件触发完成domcontentloaded:等待页面DOMContentLoaded事件触发完成networkidle:等待500ms内网络请求数量≤0时判定完成commit:收到服务器响应、导航提交即判定完成,无需等待资源加载
hard:布尔值,是否开启硬刷新,开启后会绕过浏览器本地缓存直接从服务器拉取所有资源,对应浏览器Ctrl+Shift+R的刷新效果,默认值为false
代码示例
基础用法:
// 普通刷新,默认等load事件完成 await page.reload()
带参数用法:
// 硬刷新,等待网络空闲,超时时间设为10秒 await page.reload({ hard: true, waitUntil: 'networkidle', timeout: 10000 })
使用注意事项
- 页面内未提交的表单输入内容刷新后会默认丢失,若有数据保留需求需在刷新前做本地存储等预处理
- 如果页面监听了
beforeunload事件会弹出离开确认弹窗,直接调用reload会被阻塞,需要提前通过page.on('dialog')监听并处理弹窗 - 刷新后原有页面的所有DOM节点都会失效,之前获取的元素定位句柄会无法使用,需要在刷新完成后重新定位元素
- 单页应用(SPA)调用刷新后会重置路由内的临时状态,行为和直接访问当前路由地址完全一致
- 硬刷新会增加服务器请求压力,非必要场景不建议频繁开启
hard参数
内容的提问来源于stack exchange,提问作者jialeee17
相关产品推荐
相关产品推荐

