playwright - 在框架内单击不起作用

问题描述 投票:0回答:1

运行以下测试以在 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()

这就是我在上面的测试中尝试单击的内容 enter image description here

这是我想要点击的 html enter image description here

playwright
1个回答
0
投票

我应该好好看看它。实际上,一个 iframe 里面有另一个 iframe。所以,以下工作。

await page.frameLocator('iframe[name="iframeResult"]').frameLocator('iframe[title="W3Schools 免费在线网络教程"]').locator("a[title='Menu']").点击()

© www.soinside.com 2019 - 2024. All rights reserved.