如何在 Puppeteer 中处理框架?


我们可以在 Puppeteer 中处理框架。html 代码中的框架由 frames/iframe 标记表示。Puppeteer 可以通过从主页切换到框架来处理框架。要在框架内使用元素,我们必须首先借助定位符来识别框架。contentFrame 方法用于访问框架内的元素。

语法

const f = await page.$("frame[name='frame-bottom']")
const m = await f.contentFrame()

我们来看看框架内某个元素的 html 代码并获取其中文本 - BOTTOM。

上图中突出显示的标签名称是 frame,其 name 属性的值是 frame-bottom。

示例

代码实现

//Puppeteer library
const pt= require('puppeteer')
async function frameHandle(){
   //launch browser in headless mode
   const browser = await pt.launch()
   //browser new page
   const page = await browser.newPage()
   //launch URL
   await page.goto('https://the-internet.herokuapp.com/nested_frames')
   //identify frame
   const f = await page.$("frame[name='frame-bottom']")
   //move to frame
   const x = await f.contentFrame();
   //identify element inside frame
   const n = await x.$("body")
   //get text
   const v = await (await n.getProperty("textContent")).jsonValue()
   console.log(v)
}
frameHandle()

输出

更新于:2021年11月19日

2 千+ 浏览量

开启你的职业生涯

完成课程并获得认证

开始
广告