2017-06-09 21 views
2

我正在嘗試設置一個CasperJS腳本,它將在個人網站上進行一些測試。繼續檢查選擇器,如果找不到,請點擊分頁

我需要檢查選擇器,如果在頁面上找不到,請單擊分頁中的下一頁鏈接並再次檢查。

我正在努力圍繞這個問題來解決我的問題以及如何解決它。我知道我需要某種循環,我甚至嘗試了一個while()循環,但我不明白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等文檔沒有幫助我很多,因爲它是在實例方面基本相當。

回答

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(); 
+0

最初如何觸發'go()'方法? –

+0

'go()'是一個名爲IIFE(立即調用的函數表達式)。看看語法:'(function go(){/ * ... * /})();'。你有沒有嘗試過這些代碼? – Badacadabra

+0

不怕不後悔!我會盡力去嘗試它,因爲這不幸暫時擱置了:) –

相關問題