Как создать множество окон веб браузера и получить доступ к объектам javascript внутри окон(либо фреймов)?
Суть- есть сервис, выполняющий определённые вычисления, но что б задействовать всю мощь- надо держать открытыми 100-150 вкладок браузера и одновременно их мониторить на определённые изменения в браузере. Соответственно нужно открыть в веб браузере определённые страницы-получить к ним рут доступ и когда там произойдут события- уведомлять основную программу. А само окно браузера можно не отображать для экономии ресурсов. Интересует только внедрение во внутрь кода запускаемых сотни страниц из программы на C#(лучше) ну или Nodejs.
Chrome совсем недавно зарелизили специальный безголовый режим браузера, т.е. запускается полноценный браузер, но без UI. Параллельно с этим они сделали хорошую nodejs либу для работы с таким браузером - puppeteer.
Вот небольшой пример (больше примеров в readme)
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
// Get the "viewport" of the page, as reported by the page.
await page.evaluate(() => {
return {
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight,
deviceScaleFactor: window.devicePixelRatio
};
});
await browser.close();
})();
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости