继续检查选择器,如果找不到则点击分页

时间:2017-06-09 14:49:22

标签: javascript phantomjs casperjs

我正在尝试设置一个CasperJS脚本,该脚本将在个人网站上进行一些测试。

我需要检查选择器,如果在页面上找不到它,请单击分页中的下一页链接并再次检查。

我正在努力解决这个问题以及如何解决它。我知道我需要某种循环,我甚至尝试了一个while()循环,但我不了解CasperJS足以让它工作。

我想要的基本概念,在psuedocode中:

open page http://www.example.com

check if 'li.my-class' exists

if not
    click '.next-page'
    then check again for 'li.my-class'
    (repeat this process)
else
    'li.my-class' exists, go do something else

我已经尝试过阅读有关waitFor,waitforSelector等的文档。文档对我没什么帮助,因为它在示例方面非常基础。

1 个答案:

答案 0 :(得分:0)

我建议您使用递归,尤其是递归IIFE 。以下是实施:

var casper = require('casper').create();

casper.start('http://www.example.com');

(function go() {
  casper.wait(1000, function () {
    if (!this.exists('li.my-class')) {
      this.click('.next-page');
      go();
    } else {
      // Do something...
    }
  });
})();

casper.run();