为什么 browser.saveScreen() 函数在 WebdriverIO 的图像比较服务中不起作用?

Why browser.saveScreen() function does not work in Image Comparison Service of WebdriverIO?

我尝试创建测试来比较屏幕截图,将 WebdriverIO 与图像比较服务结合使用。在 'sync' 模式下一切正常。但我想使用 'async' 模式,因为 'sync' 模式将不再受支持 (https://webdriver.io/docs/sync-vs-async)。对于 'async' 模式,我的测试如下所示:

describe('Example', () => {
  it('should save some screenshots', async () => {
    await browser.url('https://Codemify.com/interview/interview')
    // Save a screen
    await browser.saveScreen('examplePaged', {
      /* some options */
    })
  })
  it('should compare successful with a baseline', async () => {
    await browser.url('https://Codemify.com/interview/interview')
    // Check a screen
    await expect(
      browser.checkScreen('examplePaged', {
        /* some options */
      })
    ).toEqual(0)
  })
})

wdio.conf.js中的设置:

  services: [
    ['chromedriver'],
    [
      'image-comparison',
      {
        baselineFolder: join(process.cwd(), './tests/'),
        formatImageName: '{tag}-{logName}-{width}x{height}',
        screenshotPath: join(process.cwd(), '.tmp/'),
        savePerInstance: true,
        autoSaveBaseline: true,
        blockOutStatusBar: true,
        blockOutToolBar: true,
        ignoreNothing: true,
      },
    ],
  ],

在上面的示例中,创建了文件夹“.tmp”,但未创建基线文件夹“./tests/”,我收到错误消息:

[chrome 91.0.4472.124 windows #0-0] expect(received).toEqual(expected) // deep equality

Expected: 0
Received: {}
[chrome 91.0.4472.124 windows #0-0] Error: expect(received).toEqual(expected) // deep equality

我不明白哪里出了问题...假设函数 browser.saveScreen() 无法正常工作。 如有任何建议,我们将不胜感激。

我已将 await 添加到 browser.checkScreen():await expect(await browser.checkScreen('examplePaged', {/* some options */})).toEqual(0)。现在异步模式一切正常。