Javascript casperjs找不到弹出选择器

Javascript casperjs找不到弹出选择器,javascript,popup,casperjs,Javascript,Popup,Casperjs,我有一个casperjs脚本,它登录到一个页面,然后单击一个“观看视频”按钮,在该按钮上启动一个带有视频的弹出窗口。然后我尝试使用casper.withPopup切换到弹出窗口的上下文。但是,我无法打印弹出窗口的url以及单击播放按钮。 似乎我没有进入弹出窗口的DOM上下文 var casper = require('casper').create(); casper.options.waitTimeout = 90000; casper.userAgent('Mozilla/5.0 (Wi

我有一个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();

为什么您要使用
casper.page.onPageCreated
(切换为PhantomJS样式的脚本)而不是使用
casper.withPopup
?嗯,我可能应该这样做,谢谢。如果您这样做,那么您可以使用通常的
casper.waitForSelector
函数来等待选择器。无论如何,请检查元素是否在iframe中。你也可以在整个过程中截图,看看哪里出了问题,你是否在正确的页面上。我尝试使用casper.on('popup-created')和casper.on('popup.loaded'),但是无法获得加载的弹出窗口的url,正如我所说的,你应该使用
casper.withPopup