#node.js #puppeteer
Вопрос:
Здравствуйте, я использую puppeteer для обнаружения элементов dom, которые видны на экране просмотра . Функция htmlelement.Функция isIntersectingViewport() дает значение true, если элемент виден в окне просмотра . Проблема даже в том, чтобы установить высоту и ширину окна просмотра на 0 HTMLElement.isIntersectingViewport() всегда выдает значение true (в chrome я вижу окно просмотра с правильными десятицентовиками, и никакие элементы не видны, поэтому оно не должно возвращать значение true) . Вот мой код . Пожалуйста, если у вас есть идея, не стесняйтесь .
const puppeteer = require('puppeteer') const data = require('./params.json'); fs = require('fs'); async function getVisual() { const items = [] const browser = await puppeteer.launch({ headless: false, defaultViewport: { width: data.page.width, height: data.page.height, } }); const page = await browser.newPage() await page.setViewport({ width: data.page.width, height: data.page.height, }); await page.goto(data.url) const list = await page.$('*:not(script,html,body)'); for (item of list) { if (await item.isIntersectingViewport()) { items.push({index: items.length, element: await item.evaluate(node=gt;node.outerHTML)}) } }