Javascript JS in evaluate函数可以';我没有被处决

Javascript JS in evaluate函数可以';我没有被处决,javascript,casperjs,evaluate,Javascript,Casperjs,Evaluate,我是新来的。当我尝试使用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")

我是新来的。当我尝试使用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”的所有搜索结果,但事实上我什么都没有得到。 顺便说一下,我确信“evaluate”函数中的JS是正确的


谁能告诉我为什么会这样?提前谢谢

document.getElementsByClassName()方法将返回一个数组作为结果。因此,如果您想使用
gLFyf gsfi
类(即使只有一个类)获取第一个DOM元素,您应该这样调用它:

document.getElementsByClassName("gLFyf gsfi")[0].value = "google"

document.getElementsByClassName()
方法返回一个数组作为结果。因此,如果您想使用
gLFyf gsfi
类(即使只有一个类)获取第一个DOM元素,您应该这样调用它:

document.getElementsByClassName("gLFyf gsfi")[0].value = "google"