我有一个casperjs脚本,可以登录页面,然后点击“观看视频”按钮,然后启动带有视频的弹出窗口。然后我尝试使用casper.withPopup切换到弹出窗口的上下文。但是我无法打印弹出窗口的URL以及单击播放按钮。 似乎我没有进入弹出窗口的DOM上下文。
var casper = require('casper').create();
casper.options.waitTimeout = 90000;
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: 1366, height: 768};
var x = require('casper').selectXPath;
url1 = '--------';
casper.start(url1, function() {
this.sendKeys("#email","----");
this.sendKeys("#password","---");
casper.wait(1000);
});
casper.thenClick(x('/html/body/section/div/div/form/div/div/div[3] /input'));
// use XPAth
casper.thenClick(x('/html/body/nav/div/ul/li[2]/a'),function() {
casper.wait(700,function() {
console.log('waited 700 ms');
pres_preurl = this.getCurrentUrl();
console.log('url before video:'+pres_preurl);
});
});
casper.then(function() {
this.clickLabel("Watch");
console.log('watch');
casper.wait(90000);
this.withPopup(/popup/, function() {
this.waitForSelector('video[id="video"]',function() {
this.evaluate(function() {
console.log(this.getCurrentUrl());
document.querySelector('video[id="video"]').click();
});
});
});
});
casper.run();