在页面自动化脚本中,当我单击标签链接时,将打开一个新窗口。链接的网址是由复杂的javascript生成的。<a class="link_text" href="#" onclick="process('2c913f9e4c7314e1014c74a4a5e02573')">办理任务 </a>
触发后,URL变为:
https://oa.phicomm.com/workflow/doJob.action?taskVo.processExecutionId=2c913f9e49d0d5280149d12fabd90dd0&taskVo.taskId=10851011
执行点击操作后,我尝试使用API-casper.waitForPopup。
casper.waitForPopup(/.+/, function(){
this.echo(this.getTitle());
}, null, 20000);
但是由于等待超时20000ms过期而失败。我也尝试将urlstring作为参数:
casper.waitForPopup(/oa.phicomm.com\/workflow\/doJob\.action\?taskVo\.processExecutionId=2c913f9e49d0d5280149d12fabd90dd0&taskVo\.taskId=9100818/, function{
this.echo(this.getTitle());
});
仍然超时。我还捕获了屏幕截图,显然它仍在上一页中。我尝试了直接输入网址的thenOpen方法。有用。但是由于我要自动执行此操作,因此在实际触发链接之前我无法知道该网址。我是CasperJS的新手,有人知道如何解决此问题?谢谢。
最佳答案
我有同样的问题,我已经通过第一个选择器解决了这个问题
casper.[waitForSelector][1]('#example_id', function() {
this.echo("yes");
});
如果您的选择器存在,请尝试此
casper.[waitForPopup][1](0, function() {
this.echo('Popup');
});
casper.withPopup(0, function() {
this.capture('screen.png');
});
阅读有关waitForPopup的更多信息