puppeteer 定位后加载的frame
时间: 2024-02-13 20:02:52 浏览: 135
如果您使用 Puppeteer 定位了一个 frame,并且需要在该 frame 中执行操作,可以使用以下代码:
```javascript
// 获取 frame 元素的句柄
const frameHandle = await page.$('#frame-selector');
// 获取 frame 对象
const frame = await frameHandle.contentFrame();
// 在 frame 中执行操作
await frame.type('#input-selector', 'text to input');
```
其中,`#frame-selector` 是您要定位的 frame 元素的选择器,`#input-selector` 是在 frame 中要操作的输入框的选择器。
相关问题
puppeteer 定位页面打开后通过js加载的frame
如果您需要在页面加载完成后通过 JavaScript 动态加载 frame,您可以使用 Puppeteer 的 `waitForSelector` 方法等待 frame 元素出现,然后使用 `contentFrame` 方法获取 frame 对象。
以下是一个示例代码:
```javascript
await page.goto('https://example.com');
// 等待 frame 元素加载完成
const frameSelector = '#frame-selector';
await page.waitForSelector(frameSelector);
// 获取 frame 元素的句柄
const frameHandle = await page.$(frameSelector);
// 获取 frame 对象
const frame = await frameHandle.contentFrame();
// 在 frame 中执行操作
await frame.type('#input-selector', 'text to input');
```
在上面的示例中,`#frame-selector` 是您要等待加载的 frame 元素的选择器,`#input-selector` 是在 frame 中要操作的输入框的选择器。请根据您的实际情况修改选择器。
Puppeteer 等待页面加载完成
在 Puppeteer 中,可以使用 `page.waitForNavigation` 方法等待页面加载完成。例如,可以使用以下代码等待页面加载完成并输出页面标题:
```
await page.goto('https://example.com');
await page.waitForNavigation({ waitUntil: 'networkidle0' });
console.log(await page.title());
```
其中 `waitUntil` 参数可以设置为 `'load'` 或 `'networkidle0'`,表示等待页面加载完成或网络空闲时再继续执行后续代码。在大多数情况下,使用 `'networkidle0'` 更加稳定可靠。
阅读全文