playwright使用心得

公司后台管理项目,做oms订单的自动化测试
playwright很好用,可以录制操作,然后对应修改下代码就可以用了,
但是使用过程中,遇到几个问题,处理了2天,记录下

有个元素是要鼠标hover才能显示别的内容,但是怎么就是hover失败

解决:
page1.evaluate('''(td) => {
td.classList.remove("is-hidden");
}''', eighth_td)

鼠标滚动不动

解决:

先将鼠标移动到页面中间

page.mouse.move(500, 500)

模拟鼠标滚轮滚动

page.mouse.wheel(0, 500) # 向下滚动 500 像素

等待页面完全加载

page.wait_for_load_state("networkidle") # 等待网络空闲
page.wait_for_timeout(2000) # 额外等待 2 秒

检查页面是否有阻止滚动的 CSS

console.log(window.getComputedStyle(document.body).overflow);
console.log(window.getComputedStyle(document.documentElement).overflow);
如果 overflow: hidden,可以临时移除:
Copypage.evaluate('''() => {
document.body.style.overflow = 'auto';
document.documentElement.style.overflow = 'auto';
}''')

打开浏览器调试模式:

browser = playwright.chromium.launch(headless=False, slow_mo=1000)

手动测试滚动:

控制台手动运行以下代码,看是否可以滚动:
Copydocument.querySelector(".el-table__body-wrapper").scrollTo(0, 500);

检查元素位置:

在控制台运行以下代码,确认元素的位置和容器:
Copyconst td = document.querySelector(".el-table__row td:nth-child(8)");
const container = document.querySelector(".el-table__body-wrapper");
console.log("td 位置:", td.getBoundingClientRect());
console.log("容器位置:", container ? container.getBoundingClientRect() : "无容器");

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容