我正在尝试设置一个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等的文档。文档对我没什么帮助,因为它在示例方面非常基础。
答案 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();