簡體   English   中英

評估函數中的 JS 無法執行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM