Я пытаюсь вернуть весь объект Windows со страницы, а затем пересекаю объект за пределами кукловода.
Я пытаюсь получить доступ к данным в свойстве Highcharts, для которого мне нужен доступ к объекту окна. Обычный код JavaScript, похожий на window.Highcharts.charts[0].series[0].data
.
Я подумал, что самый простой способ - использовать кукловода для доступа к сайту и просто отправить мне обратно объект Windows, который я затем смог бы использовать вне кукловода, как и любой другой объект JS.
После прочтения документации мне трудно вернуть объект, так как он выглядит просто помещая «окно» в консоль Chrome. Я не уверен, что мне не хватает?
Я прочитал документацию, и следующие два метода, похоже, должны работать?
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.example.com', {waitUntil: 'networkidle2'});
// METHOD 1
// Create a Map object
await page.evaluate(() => window.map = new Map());
// Get a handle to the Map object prototype
const mapPrototype = await page.evaluateHandle(() => Map.prototype);
// Query all map instances into an array
const mapInstances = await page.queryObjects(mapPrototype);
console.log(mapInstances);
await mapInstances.dispose();
await mapPrototype.dispose();
// METHOD 2
const handle = await page.evaluateHandle(() => ({window, document}));
const properties = await handle.getProperties();
const windowHandle = properties.get('window');
const documentHandle = properties.get('document');
var result = await page.evaluate(win => win, windowHandle);
console.log(result)
await handle.dispose();
await browser.close();
})();
Тем не менее, он возвращает только следующее в консоли, а не простой объект, который я хотел бы;
Не уверен, правильно ли я поступаю, поэтому любая помощь / совет очень важны.