Javascript casperjs找不到弹出选择器
我有一个casperjs脚本,它登录到一个页面,然后单击一个“观看视频”按钮,在该按钮上启动一个带有视频的弹出窗口。然后我尝试使用casper.withPopup切换到弹出窗口的上下文。但是,我无法打印弹出窗口的url以及单击播放按钮。 似乎我没有进入弹出窗口的DOM上下文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
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