puppeteer点击iframe内嵌套的iframe内的元素
时间: 2023-10-13 20:26:39 浏览: 249
要点击嵌套的 iframe 中的元素,您需要先导航到该 iframe 中,然后再点击元素。以下是使用 Puppeteer 在嵌套的 iframe 中查找元素并进行单击的示例代码:
```javascript
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// 导航到包含嵌套 iframe 的页面
await page.goto('https://example.com');
// 获取外部 iframe 元素的句柄并切换到该 iframe
const outerFrame = await page.$('#outer-iframe');
const outerFrameContent = await outerFrame.contentFrame();
await page.waitFor(1000); // 等待 iframe 加载完成
await page.waitForSelector('#inner-iframe');
// 获取内部 iframe 元素的句柄并切换到该 iframe
const innerFrame = await outerFrameContent.$('#inner-iframe');
const innerFrameContent = await innerFrame.contentFrame();
await page.waitFor(1000); // 等待 iframe 加载完成
await page.waitForSelector('#element-to-click');
// 在内部 iframe 中单击元素
const elementToClick = await innerFrameContent.$('#element-to-click');
await elementToClick.click();
await browser.close();
})();
```
在这个示例中,我们首先导航到包含嵌套 iframe 的页面。然后,我们获取外部 iframe 元素的句柄并切换到该 iframe。接下来,我们等待内部 iframe 元素出现并获取其句柄,并切换到该 iframe。最后,我们等待要单击的元素出现并获取其句柄,然后使用 `click()` 方法单击它。
阅读全文