使用 intern.js 和 Leadfoot 滚动到 Selenium 中的元素

Can*_*ner 1 javascript selenium saucelabs intern

这有很多组件,我不确定问题出在哪里,但这是我的问题。我正在使用 intern.js 对 SauceLabs 进行 javascript 功能测试。

下面的测试通过了,但是当我转到 SauceLabs 的屏幕截图以查看窗口的行为时,它没有正确滚动到元素,因此.moveMouseTo无法正常工作。

有一点点滚动,但元素仍然不可见。我研究了 Selenium 和 focus,但我是 intern.js 的新手,所以我不确定如何从 Selenium 中的描述中实现这一点,仅在此处发布。

这是测试:

'added comment shows the comment added': function () {
        return this.get('remote')
            .get(require.toUrl('index.html'))
            .setFindTimeout(500)
            .setWindowSize(800, 600)
            .findByCssSelector('.ht-comment-box')
            .click()
            .type('My New Comment')
            .end()
            .findByCssSelector('#addComment')
            .click()
            .end()
            .setFindTimeout(500)
            .findByCssSelector('.commentRow:last-child > .commentContent ')
            .moveMouseTo()
            .getVisibleText()
            .then(function (text) {
                assert.strictEqual(text, 'My New Comment',
                    'Adding a comment should display the comment. Showed instead ' + text);
            });
    },
Run Code Online (Sandbox Code Playgroud)

这是滚动的外观,添加的评论不可见。

在此处输入图片说明

neo*_*art 5

我相信你需要将一个元素传递给 moveMouseTo

var remote = this.get('remote');

return remote.get( … )
  // …
  .findByCssSelector( … ).then(function (element) {
    return remote.moveMouseTo(element);
  })
  .getVisibleText();
Run Code Online (Sandbox Code Playgroud)