我有这么多组件,我不确定问题出在哪里,但这是我的问题。我使用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);
});
},
这里有滚动的样子,添加的评论不可见。
答案 0 :(得分:4)
我认为您需要将元素传递给moveMouseTo
var remote = this.get('remote');
return remote.get( … )
// …
.findByCssSelector( … ).then(function (element) {
return remote.moveMouseTo(element);
})
.getVisibleText();