2013-11-27 24 views
0

是否有可能在沒有傳遞選擇器的情況下單擊casper js中的頁面元素?我的意思是我不能做到這一點:casperjs點擊不是選擇器,但變量

casperjs.thenClick('#test'); 

但我有

var testV = document.querySelector('#test'); 

我希望做這樣的事情:

casperjs.thenClick(testV); 

現在它不工作

回答

1

您正在使用thenClick不當。確保then.click不包含在casper.evaluate塊中,並注意casper結尾處沒有js。它應該被實現爲:

casper.thenClick('a', function() { 
    this.echo("I clicked on first link found, the page is now loaded."); 
}); 

如果要在選擇只執行常規click,你可以做到以下幾點:

casper.then(function() { 
    // Click on 1st result link 
    this.click('h3.r a'); 
}); 

如果你想使用JavaScript,請確保您有不到一個casper.evaluate聲明。您可以使用以下內容:

casper.then(function() { 
    casper.evaluate(function() { 
     var testV = document.getElementById("test"); 
     testV.click(); 
    }); 
}); 
+0

確定'casperjs'只有在我輸入時出現錯誤。在我的代碼中,它確定:)但其餘的仍然不起作用。 –

+0

請將我的答案標記爲正確答案,我正在評論您的代碼:[Here](http://stackoverflow.com/q/20243033/2812723) –

+0

我已經測試過,並且先不工作。但我在其他網站上測試它,它工作。它在輸入提交上工作,但它不在主播上。所以你的解決方案很好,但不完美:)任何想法錨什麼? –