Не может получить доступ к атрибуту или iframe, который находится внутри iframe #document puppeteer - PullRequest
0 голосов
/ 21 февраля 2020
  const attr = await page.$$eval("body > iframe", el => el.map(x => x.getAttribute("style")));

  console.log(attr);

Я пытаюсь извлечь имя атрибута во втором iframe, который находится под # doument.

Когда я делаю селектор копирования, он дает мне селектор body > iframe, и он не позволяет мне извлечь атрибут iframe. Мне нужен атрибут имени, и он не позволяет мне получить его независимо от того, какой селектор я использую

[! [Щелкните здесь для изображения] [1]] [1]

https://i.stack.imgur.com/Lf2FO.png

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Я также рекомендую использовать удлинитель диктофона. Например, вы можете записывать щелчки мыши внутри iFrame, после чего он создаст для вас скрипт, который вы сможете использовать для лучшего понимания того, как получить доступ к содержимому фрейма. Это мне очень помогло с такими вещами, как всплывающие окна, iFrames и др. c ...

https://chrome.google.com/webstore/detail/puppeteer-recorder/djeegiggegleadkkbgopoonhjimgehda?hl=en

Вы пытались использовать что-то вроде

let frames = await page.frames()
const frame = frames.find(f => f.url().startsWith('https://www.urlofiframe.com'))

или просто консоль, регистрирующая переменную frames и смотрящая, что вы можете получить оттуда?

0 голосов
/ 21 февраля 2020

Edit (если у вас нет идентификатора, вы можете получить его с именем). Поместите свой iframe в переменную, подобную этой:

var MyIframe = document.getElementsByName('iframe_id_here');

, тогда вам go нравится, чтобы получить материал внутри iframe, потому что он будет в массиве, поскольку getelemetsByName является множественным числом:

MyIframe[0].getElementById('SomeID').style.SomeProperties = 'Some_Value';

Должно работать так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...