我正在尝试与Intern 2进行集成测试,这意味着我需要浏览网页或等待ajax来测试某些事情。这意味着等待元素出现,实习生1支持。
我查看了leadfoot中的pollUntil,它几乎可以满足我的需要,但是对于我需要进行的每次点击都会产生一串.then
个example)。有没有更好的方法呢?
答案 0 :(得分:2)
Intern 2中的Leadfoot有一个名为sleep()
的方法与Intern 1中的wait()
做同样的事情。
Leadfoot还提供setFindTimeout()
方法,如果在首次调用find()
方法时未找到该元素,则该方法应设置实习生继续在页面上查找元素的时间。
我最终创建了一个专门用于等待元素出现在页面上的函数。然后在pollUntil()
内使用此内容明确等待元素在页面上显示或消失。
element_visible_by_query_selector: function(query) {
return function(query) {
elem = document.querySelector(query);
if (!elem) { return null; }
return (elem.offsetWidth > 0 && elem.offsetHeight > 0) ? elem : null;
}
},
.then(pollUntil(util.element_visible_by_query_selector(), ['<element>'], 22000))
答案 1 :(得分:0)
findBy *等待的时间由设置的查找超时值控制 - https://theintern.github.io/leadfoot/Command.html#setFindTimeout