Селектор страниц странное поведение у кукловода - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь получить элемент из DOM той страницы, которую я коплю в кукловоде.

После загрузки страницы я звоню page.$('.class-name').Возвращает какой-то странный объект вида { ClickTale: {} }.

Когда я звоню document.querySelector('.class-name') с консоли Chrome, я получаю совершенно другой объект, который соответствует элементу, который я ищу.

Моя цель - получить доступ к свойству href указанного элемента в кукловоде.Спасибо

Ответы [ 2 ]

1 голос
/ 16 марта 2019

page.$(selector) отличается от document.querySelector,

  • Вы запускаете querySelector в браузере, но page.$ на nodeJS.
  • page.$ возвращает ElementHandle или null в зависимости от результата.querySelector возвращает элемент Dom.

Вы можете получить href указанного элемента, используя $ eval .Это сделает querySelector и оценит результат.

page.$eval('.class-name', elem => elem.href) 
0 голосов
/ 18 марта 2019

Я тоже новичок в кукловоде и тоже пережил это, Джек.Я бы получил ElementHandle JSHandle в ответе.Мне удалось извлечь ссылки, используя getProperty , но я мог сделать это неправильно.Лучшее объяснение этому: здесь

let te_responce = await page[0].$$('div[class="supergrid-bucket"] > a')
  console.log(`Number of entries ${te_responce.length}`)

for (let i = 0; i < te_responce.length; i++) {
  console.log(`link ${await(await te_responce[i].getProperty('href')).jsonValue()}`)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...