在我的用例中,知道何时加载页面的唯一方法是等待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毫秒,这可能会失败。

08-19 02:03