gpt4 book ai didi

javascript - 如何在 Puppeteer 的 iframe 元素中选择元素

转载 作者:行者123 更新时间:2023-11-29 17:36:10 27 4
gpt4 key购买 nike

由于 ESPN 不提供 API,我正在尝试使用 Puppeteer 来抓取有关我的梦幻足球联赛的数据。但是,由于登录表单嵌套了 iframe 元素,我很难尝试使用 puppeteer 登录。

我去了http://www.espn.com/login并选择了 iframe。除了主要部分之外,我似乎无法选择 iframe 中的任何元素

    frame.$('.main')

这是获取带有登录表单的 iframe 的代码。

    const browser = await puppeteer.launch({headless:false});
const page = await browser.newPage();

await page.goto('http://www.espn.com/login')
await page.waitForSelector("iframe");

const elementHandle = await page.$('div#disneyid-wrapper iframe');
const frame = await elementHandle.contentFrame();
await browser.close()

我希望能够访问 iframe 元素中的用户名字段、密码字段和登录按钮。每当我尝试访问这些字段时,都会返回 null。

最佳答案

您可以像现在一样使用contentFrame 获取iframe,然后调用$

const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();

await page.goto('http://www.espn.com/login')

const elementHandle = await page.waitForSelector('div#disneyid-wrapper iframe');
const frame = await elementHandle.contentFrame();
await frame.waitForSelector('[ng-model="vm.username"]');
const username = await frame.$('[ng-model="vm.username"]');
await username.type('foo');
await browser.close()

enter image description here

关于javascript - 如何在 Puppeteer 的 iframe 元素中选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56420047/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com