我在让Intern 2等待元素出现时遇到问题。在实习生1中,我使用wait()
设置页面的明确时间段,以等待某个用户操作后某个元素出现。对于实习生2,似乎有setFindTimeout()
,它应该始终告诉find()
方法稍等片刻,等待元素出现。我已经设置了setFindTimeout()
并尝试使用pollUntil
来处理这些等待,但是测试仍然失败,并显示错误“元素不可见”。
这是一个示例测试,其使用的要求与我的实际测试相同,并且正在寻找在page加载5秒后出现的元素ID。
define([
'intern!object',
'intern/chai!assert',
'require',
'tests/util',
'intern/dojo/node!leadfoot/Command',
'intern/dojo/node!leadfoot/Session',
'intern/dojo/node!leadfoot/helpers/pollUntil'
], function (registerSuite, assert, require, util, Command, Session, pollUntil) {
registerSuite([
{
name: 'testing_find_by_wait',
test_create_form_on_web: function() {
console.log('Create a form with account, number, number and formula fields')
return this.remote
.setFindTimeout(10000)
.setWindowSize(1280, 960)
.get("http://www.kgstew.com/waittest.html")
.then(pollUntil('return document.getElementById("demo")', 10000))
.findById('demo')
.click()
.end()
}
}
]);
});
最佳答案
该元素被发现就好了。对于每个错误,它无法在元素上添加click
。发生这种情况是因为该元素为空并且没有样式,所以它的大小为零,并且在您尝试单击它时无法单击。您需要等待元素存在并可见,然后才能尝试单击它。