0

基本上我正在尝试使用从执行函数返回的值将屏幕大小调整为全高和全宽。我正在努力弄清楚如何将执行函数中的值传递给我的调整大小函数,并希望有人可以查看我的代码并告诉我哪里出错了?当我检查 saucelabs 命令执行时,我没有看到 resize 命令在屏幕截图之前被触发。所以我不确定故障的确切位置(无论是大小没有正确传递还是时间不正确。当我对大小进行硬编码而不是尝试从执行中获取它时,它工作得很好。谢谢!!

    registerSuite('homepage', {
  'homepage'() { 
    return this.remote.get('myurl') 
      .setWindowPosition(0,0)
      .maximizeWindow() 
      .execute(() => [
        document.documentElement.scrollWidth,
        document.documentElement.scrollHeight
      ])
      .then(([width, height]) => { return helpers.resizeWindow(width, height) }) 
      .takeScreenshot() 
      .then(assertVisuals(this, { missingBaseline: 'snapshot', regenerateBaselines: true }) );
  }
});
4

1 回答 1

0

我实际上能够通过做两件事来解决这个问题。我删除了 helper.resizeWindow 并使用了常规的 command.resizeWindow,而不是将它嵌入到回调函数中,我只是将它放在那里,没有花括号,也没有返回语句。我不确定为什么这种语法有效而另一种无效。

registerSuite('homepage', {
    'homepage'() {
            return this.remote.get('mypage')
            .setWindowPosition(0,0)
            .maximizeWindow()
            .execute(() => [document.documentElement.scrollWidth, document.documentElement.scrollHeight])
            .then(([width, height]) => this.remote.setWindowSize(width, height))
            .takeScreenshot()
            .then(
                assertVisuals(this, {
                    missingBaseline: 'snapshot',
                    regenerateBaselines: true
                })
            );
    }
});


于 2019-04-11T15:44:20.593 回答