等待使用CasperJS的多个备选选择器

时间:2016-05-02 18:26:49

标签: node.js phantomjs casperjs

我有一个应用程序,它可以对我的CasperJS脚本的操作做出不同的反应,因此我需要同时等待不同的选择器并根据第一个匹配的选择器进行操作。但是,看起来CasperJS一次只能等待一个选择器。

如何等待不同的反应并将脚本的执行转移到不同的分支?

1 个答案:

答案 0 :(得分:2)

您可能想要尝试等待组合选择器(CSS逗号分隔列表充当逻辑or),然后检查每个选择器是否存在于页面和分支中,沿着此行(未经测试的)伪代码:

var selectors = [
  '.my.first .fancy .selector',
  '.boring'
];
casper.waitForSelector(selectors.join(', '), function(){
  var idx;
  for (idx = 0; idx < selectors.length; ++idx) {
    if (casper.exists(selectors[idx])) {
      doSomething(idx);
    }
  }
});