我正在尝试设置一个CasperJS脚本,该脚本将在个人网站上进行一些测试。
我需要检查选择器,如果在页面上找不到它,请单击分页中的下一页链接并再次检查。
我正在努力解决这个问题以及如何解决它。我知道我需要某种循环,我什至尝试了一段时间((循环,但我对 CasperJS 的了解不足以让它工作。
我想要什么的基本想法,在伪代码中:
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等的信息。该文档对我没有多大帮助,因为它在示例方面非常基本。
我建议你使用递归,尤其是递归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();