Playwright中使用定位器无法执行元素点击操作求助
解决Playwright点击日期选择器超时报错问题
问题原因
目标日期输入框位于页面的iframe中,Playwright默认不会自动切换到iframe上下文,直接定位主页面元素会导致找不到目标,最终触发超时报错Test timeout of 60000ms exceeded.- locator.click: Target closed。
修复代码
test.only('click on date picker', async ({page})=>{ await page.goto('https://www.globalsqa.com/demo-site/datepicker/#Simple%20Date%20Picker'); // 切换到包含demo的iframe上下文 const demoIframe = page.frameLocator('.demo-frame'); // 在iframe内定位日期输入框 const dateInput = demoIframe.locator("input.hasDatepicker"); // 等待元素可见后点击 await dateInput.waitFor({ state: 'visible' }); await dateInput.click(); });
额外优化建议
- 如果元素存在遮挡或交互延迟,可尝试强制点击:
await dateInput.click({ force: true }); - 用
page.pause()启动调试模式,直观检查元素所在的上下文、加载状态,排查定位问题。
内容的提问来源于stack exchange,提问作者Waliullahkhan
相关产品推荐
相关产品推荐

