运行以下测试以在 iframe 内单击。
test('click inside a frame', async ({page}) => {
await page.goto('https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_iframe', {waitUntil: 'domcontentloaded'})
await page.locator('iframe[name="iframeResult"]').locator("a[title='Menu']").click()
await page.waitForTimeout(4000)
})
or
test('click inside a frame', async ({page}) => {
await page.goto('https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_iframe', {waitUntil: 'domcontentloaded'})
const frame = await page.frameLocator('iframe[name="iframeResult"]')
await frame.locator("a[title='Menu']").click()
await page.waitForTimeout(4000)
})
测试错误显示 waiting for locator('iframe[name="iframeResult"]').locator('a[title='Menu']')
注意: 如果我这样做,我就能成功找到框架 等待 page.locator('iframe[name="iframeResult"]').highlight()
我应该好好看看它。实际上,一个 iframe 里面有另一个 iframe。所以,以下工作。
await page.frameLocator('iframe[name="iframeResult"]').frameLocator('iframe[title="W3Schools 免费在线网络教程"]').locator("a[title='Menu']").点击()