Casperjs点击按钮没有做任何事情

时间:2017-07-24 10:19:20

标签: node.js phantomjs casperjs

所以我有一个带有段落和按钮的html页面。单击该按钮时,该段落隐藏。我试图在Casperjs中实现自动化。到目前为止,我加载页面,截取屏幕截图,然后单击按钮并拍摄另一个屏幕截图。但是,屏幕截图是相同的

var casper = require('casper').create();

casper.start('http://localhost:3000/example.html', function() {
    this.echo("Loaded successfully.");
    casper.capture("screenshot1.png");
});

casper.then(function() {
    this.evaluate(function() {
        this.click('//*[@id="hide"]')
    });
});

casper.then(function(){
    casper.capture("screenshot2.png");
});

casper.run();

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您不能在evaluate()中使用this.click(),因为evaluate()中的代码将像使用浏览器控制台一样执行代码。您可以使用javascript来获取元素并使用它click()事件或者您可以直接使用this.click()。但是,不要在evaluate()中使用this.click()。

答案 1 :(得分:0)

当您描述问题时,如果您的按钮ID ='隐藏',则可能是代码:

var casper = require('casper').create();

casper.start('http://localhost:3000/example.html', function() {
    this.echo("Loaded successfully.");
    casper.capture("screenshot1.png");

    casper.click('#hide'); // Clicking button with Id='hide'

    casper.capture("screenshot2.png"); // capture after clicking button
});

// Execute the whole process
casper.run();

愿这对你有所帮助! TX