[英]the JS in evaluate function can't been executed
我是新來的。當我嘗試使用 casperjs.evaluate() 執行 JS 時,我發現事件沒有執行。 代碼像
casper = require("casper").create();
casper.start("https://www.google.com/",function(){
this.echo(this.getTitle());
this.wait(1000);
this.capture("homepage.png")
});
casper.then(function(){
this.evaluate(function(){
document.getElementsByClassName("gLFyf gsfi").value = "google"
})
this.echo(this.getTitle())
this.wait(1000)
this.capture("input.png")
});
casper.then(function(){
var tmp = this.evaluate(function(){
document.getElementsByClassName('gNO89b')[1].click();
});
this.echo(this.getTitle())
casper.wait(1000);
casper.capture("searchList.png");
});
casper.run();
像“value”和“click”這樣的事件應該按照我的預期執行,所以“searchList.png”應該顯示“google”的所有搜索結果,但實際上我什么也沒得到。 順便說一句,我確定“評估”函數中的 JS 是正確的。
誰能幫我告訴我為什么會這樣? 提前致謝!
document.getElementsByClassName()
方法作為結果返回一個數組。 因此,如果您想使用gLFyf gsfi
類(即使只有一個)獲取第一個 DOM 元素,您應該這樣調用它:
document.getElementsByClassName("gLFyf gsfi")[0].value = "google"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.