page. $ eval () селектор только с видимым элементом - PullRequest
0 голосов
/ 14 июля 2020

Я работаю с кукловодом в данный момент над созданием веб-сканера и сталкиваюсь со следующей проблемой:

Сайт, с которого я пытаюсь очистить информацию, использует вкладки. Он отображает их все сразу и устанавливает свойство display для всех вкладок, кроме одной, в значение 'none', поэтому видна только одна вкладка.

Следующий код всегда возвращает мне первую строку полета, которую можно скрыть в зависимости от даты, которую запрашивает поисковый робот.

const flightData = await page.$eval('.available-flights .available-flight.row', (elements) => {
  // code to handle rows
}

Кажется, нет дополнительного параметра, который вы можете передать. $ eval (), как вы можете в

.waitForSelector('.selector', {hidden: false})

Неправильно ли я следую? Есть ли способ выбрать только показанный элемент и работать с этими данными?

1 Ответ

0 голосов
/ 14 июля 2020
const flightData = await page.$eval('.available-flights .available-flight.row:not([style*="display:none"]):not([style*="display: none"])', (elements) => {
  // code to handle rows
}

Делает фокус :)

...