0

您好,我想通过 puppeteer 检查网站是否具有 showDirectoryPicker 功能。

目前我的代码如下所示:

    'use strict';

const puppeteer = require('puppeteer');

(async function main() {
  try {
    const browser = await puppeteer.launch({ headless:false,executablePath: '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome', });
    const [page] = await browser.pages();

    await page.goto('https://example.com');


    console.log(await page.evaluate(() => typeof showDirectoryPicker === 'function'));
 

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

目前这个说法

    console.log(await page.evaluate(() => typeof showDirectoryPicker === 'function'));

为每个网站返回True,因为它是一个有效的 JS 函数。但是,如果分析的网站具有 showDirectoryPicker 功能,我想得到 True 。

4

1 回答 1

0

如果我正确理解您的问题,则您正在尝试评估页面是否调用该showDirectoryPicker()方法,而不是浏览器是否支持它。解决此问题的一种方法是使用您自己的实现覆盖该方法,然后在页面调用它时向 Puppeteer 报告。请参阅我的StackOverflow 答案,了解使用在调用时记录的变体覆盖函数。然后,您可以使用 Puppeteer 捕获此日志输出:

page.on('console', (message) => {
  /*
    Check that the message is what your overridden
    custom variant logs.
  */
});
于 2021-02-23T14:44:57.873 回答