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

由于 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。


慕田峪9158850
浏览 529回答 3
3回答

Smart猫小萌

等待 elementHandle.contentFrame() 为空:const frame = await elementHandle.contentFrame();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript