我在让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。发生这种情况是因为该元素为空并且没有样式,所以它的大小为零,并且在您尝试单击它时无法单击。您需要等待元素存在并可见,然后才能尝试单击它。

10-05 23:02
查看更多