【问题标题】:Node Lighthouse not returning similar results for accessibility节点灯塔没有返回类似的可访问性结果
【发布时间】:2021-08-13 03:56:57
【问题描述】:

不确定我是做错了什么还是缺少配置设置,但是当我在 Chrome 扩展程序中运行 LH 时,我的页面收到 94,但是当我在节点 LH 中运行同一页面时,我得到了 88。我想将其作为台式机与移动设备运行,但我不确定要获得相同或更相似的分数,我还缺少什么。

我当前的代码

const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
    const options = {logLevel: 'info', output: 'html', onlyCategories: ['accessibility'], port: chrome.port};
    // emulatedFormFactor:'desktop'
    const config = { extends: 'lighthouse:default', settings: {formFactor: 'desktop', screenEmulation:{mobile:false}} }
    const runnerResult = await lighthouse(, options, config);

我预计两者之间会略有不同,但我认为 6 分有点戏剧性。我注意到两者之间的油门速率不同,但不确定如何更改设置或配置。

右图为Chrome浏览器,左图为节点保存页面

【问题讨论】:

  • 您是否扩展了 Chrome 浏览器中的“按钮没有可访问的名称”错误?这就是分数差异的来源,但在不知道它指向什么元素的情况下,我们无能为力提供任何帮助。
  • 其实我有一个有根据的猜测——我想你在手机上的菜单按钮只是一个汉堡包图标,对吗?
  • 好收获!汉堡菜单仅在移动设备中显示,这应该用于测试桌面。我是否在我的配置中遗漏了一些它不会测试桌面的东西,尽管它说它是?
  • 很难说为什么它在运行移动版本,我唯一能想到的就是你的屏幕太小(太窄)或者在主浏览器设置中打开了移动仿真(开发工具的左上角),因为它仍然会尊重桌面版本上的正常响应设置。当您运行它时,您会看到站点的哪个断点?奇怪的是,您也有与移动应用相同的限制(CPU 减速和网络限制 - 您是否在性能选项卡中设置了这些?)。
  • 正如您在代码中看到的,我运行的是无头节点版本,因此没有浏览器或性能选项卡。我正在寻找是否有人可以查看我的设置,并让我知道我是否遗漏了一些东西来模拟桌面并管理代码中的节流。

标签: javascript node.js lighthouse


【解决方案1】:

经过大量谷歌搜索后,我终于找到了让我的 Node Lighthouse 使用与 Chrome 扩展版本相同的参数的答案。

这是最终代码:

const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
    const flags = {logLevel: 'info', output: 'html', onlyCategories: ['accessibility'], port: chrome.port};
    const config = {
        extends: 'lighthouse:default',
        settings: {
          formFactor: 'desktop',
          throttling: {
            rttMs: 40,
            throughputKbps: 10240,
            cpuSlowdownMultiplier: 1,
            requestLatencyMs: 0,
            downloadThroughputKbps: 0,
            uploadThroughputKbps: 0
          },
          screenEmulation: {
            mobile: false,
            width: 1350,
            height: 940,
            deviceScaleFactor: 1,
            disabled: false
          },
          emulatedUserAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4143.7 Safari/537.36 Chrome-Lighthouse'
        }
      }
    const runnerResult = await lighthouse('https://yourawesomesite.com', flags, config);

希望这有助于其他人自动化他们的 Lighthouse 测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多