Можно ли загрузить chrome: // gpu с помощью Puppeteer? - PullRequest
0 голосов
/ 05 февраля 2019

Я использую Puppeteer, чтобы делать скриншоты некоторых страниц.Я хотел бы проверить поддержку GPU / WebGL, но когда я использую await page.goto("chrome://gpu"), я получаю эту ошибку:

Error: Navigation failed because browser has disconnected!
    at CDPSession.LifecycleWatcher._eventListeners.helper.addEventListener (/app/node_modules/puppeteer/lib/LifecycleWatcher.js:47:107)
    at emitNone (events.js:106:13)
    at CDPSession.emit (events.js:208:7)
    at CDPSession._onClosed (/app/node_modules/puppeteer/lib/Connection.js:215:10)
    at Connection._onClose (/app/node_modules/puppeteer/lib/Connection.js:138:15)
    at WebSocketTransport._ws.addEventListener.event (/app/node_modules/puppeteer/lib/WebSocketTransport.js:45:22)
    at WebSocket.onClose (/app/node_modules/ws/lib/event-target.js:124:16)
    at emitTwo (events.js:126:13)
    at WebSocket.emit (events.js:214:7)
    at WebSocket.emitClose (/app/node_modules/ws/lib/websocket.js:180:10)
  -- ASYNC --
    at Frame.<anonymous> (/app/node_modules/puppeteer/lib/helper.js:108:27)
    at Page.goto (/app/node_modules/puppeteer/lib/Page.js:662:49)
    at Page.<anonymous> (/app/node_modules/puppeteer/lib/helper.js:109:23)
    at main (/app/index.js:21:16)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)

Если я вместо этого использую await page.evaluate(() => window.location.href = "chrome://gpu"), на странице записывается сообщение об ошибке в консоли:

Запрещено загружать локальный ресурс: chrome: // gpu /

Есть ли способзагрузить страницу состояния GPU из Puppeteer?

1 Ответ

0 голосов
/ 05 февраля 2019

Я не могу воспроизвести с последней версией кукловода в дереве 7 x64:

'use strict';

const puppeteer = require('puppeteer');

(async function main() {
  try {
    const browser = await puppeteer.launch();
    const [page] = await browser.pages();

    await page.goto('chrome://gpu');

    const data = await page.evaluate(() =>
      [...document.querySelectorAll('h3')].map(({ innerText }) => innerText)
    );

    console.log(data);

    await browser.close();
  } catch (err) {
    console.error(err);
  }
})();

Вывод:

[ 'Graphics Feature Status',
  'Driver Bug Workarounds',
  'Problems Detected',
  'Version Information',
  'Driver Information',
  'Compositor Information',
  'GpuMemoryBuffers Status',
  'Display(s) Information',
  'Video Acceleration Information',
  'Diagnostics',
  'Driver Information for Hardware GPU',
  'Graphics Feature Status for Hardware GPU',
  'Driver Bug Workarounds for Hardware GPU',
  'Problems Detected for Hardware GPU',
  'Log Messages' ]
...