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

时间:2014-08-20 17:29:15

标签: javascript selenium intern saucelabs

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

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

有一点点滚动,但元素仍然不可见。我查看了Selenium和焦点,但我是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);
            });
    },

这里有滚动的样子,添加的评论不可见。

enter image description here

1 个答案:

答案 0 :(得分:4)

我认为您需要将元素传递给moveMouseTo

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

return remote.get( … )
  // …
  .findByCssSelector( … ).then(function (element) {
    return remote.moveMouseTo(element);
  })
  .getVisibleText();