CasperJS 脚本找不到正确的按钮和 onclick-event

CasperJS script does not find correct button and onclick-event

本文关键字:按钮 onclick-event 脚本 找不到 CasperJS      更新时间:2023-09-26

我的Casperjs脚本播放视频,然后网页显示2个按钮以继续查看或单击"填充"。"填充选项是我所追求的,但按钮具有相同的 id,除了所需的选项具有 activate-access() 函数:

button id="activate" class="btn btn lg" onclick="activate_access();

我尝试这样做.click('#activate')和this.click('#activate.btn.btn-lg'),但这只是重新加载一个新视频,所以我认为casper.evaluate或其他方法需要,以及如何传递正确的onclick事件(即acivate_access();)去卡斯佩尔斯?法典:

var casper = require('casper').create({
            logLevel: "warning",
            verbose: true,
            onPageInitialized: function() {
                                            console.log("page opened");
                                            },
});
casper.userAgent('Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36  (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36');
casper.viewport = {width:1200, height:800}; 
casper.start(url, function() {
    casper.wait(1000, function() {                             
                    casper.capture('look.png');
                    console.log('did screenshot');
    });

});
casper.wait(4000, function() {
console.log('clicking play');
this.click('#video');
casper.wait(37000);
casper.capture('play.png');
pres_url=this.getCurrentUrl();    
console.log(pres_url);
});
casper.evaluate(function() {
document.getElementById('activate').click();
});
casper.wait(500);
casper.run();

您不必进入页面上下文并使用 DOM API 或 jQuery 来单击此元素。CasperJS的click(selector)完全能够通过适当的选择器来处理这个问题。

CSS 选择器支持基于元素属性的匹配元素。你使用

casper.click("button[onclick='activate_access();']");

完美匹配甚至

casper.click("button[onclick*='activate_access']");

对于部分匹配。