微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我尝试创建测试来比较屏幕截图,使用 WebdriverIO 和图像比较服务。在“同步”模式下一切正常。但我想使用“异步”模式,因为不再支持“同步”模式(https://webdriver.io/docs/sync-vs-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() 不能正常工作。 任何建议将不胜感激。

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。