在我的用例中,知道何时加载页面的唯一方法是等待2个选择器。
用CasperJS做到这一点的最佳方法是什么?
这是我的解决方案:
casper.waitUntilVisible2 = function(selector1, selector2, then, onTimeout, timeout) {
casper.waitUntilVisible(selector1, function () {
casper.waitUntilVisible(selector2, then, onTimeout, timeout)
}, onTimeout, timeout);
}
最佳答案
我建议进行一些改进,以便可以通过返回this
并实际使用this
将函数用于链接,以便更轻松地将此函数添加到一个脚本中的不同casper
实例中。否则就可以了。
casper.waitUntilVisible2 = function(selector1, selector2, then, onTimeout, timeout) {
this.waitUntilVisible(selector1, function () {
this.waitUntilVisible(selector2, then, onTimeout, timeout)
}, onTimeout, timeout);
return this;
}
您还可以尝试仅使用第二个选择器。
casper.waitUntilReappears = function(selector, then, onTimeout, timeout) {
this.waitWhileVisible(selector, function () {
this.waitUntilVisible(selector, then, onTimeout, timeout)
}, onTimeout, timeout);
return this;
}
尽管如果选择器的更改速度超过20毫秒,这可能会失败。