inv*_*lid 3 javascript google-chrome chromium node.js puppeteer
我想获取一个 iframe 作为框架并单击框架中的一个元素,但是 iframe 没有名称并且网站有很多框架(page.frames()返回 14)。
而且我无权编辑 html。我只能编辑 JavaScript。
我认为在这种情况下识别 iframe 的最佳方法是从其父元素。
我怎样才能用 puppeteer 做到这一点?
<div id="foo">
<iframe>
#document
</iframe>
</div>
Run Code Online (Sandbox Code Playgroud)
小智 6
请注意,您还应该添加这些浏览器启动选项来运行 contentFrame 方法,否则它将返回 null:
const browser = await puppeteer.launch({
headless: false,
args: [
'--disable-web-security',
'--disable-features=IsolateOrigins,site-per-process'
]
});
Run Code Online (Sandbox Code Playgroud)
您可以使用该elementHandle.contentFrame()函数从元素句柄返回一个框架。
来自文档的引用:
解析到引用 iframe 节点的元素句柄的内容框架,否则为 null
例子:
const elementHandle = await page.$('div#foo iframe');
const frame = await elementHandle.contentFrame();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8101 次 |
| 最近记录: |