在我的页面自动化脚本中,当我单击标签链接时,将打开一个新窗口。链接的URL由复杂的javascript生成。
<a class="link_text" href="#" onclick="process('2c913f9e4c7314e1014c74a4a5e02573')">办理任务 </a>
我在点击操作后尝试使用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());
});
仍然超时。我还捕获了屏幕截图,显然它仍然在上一页。我尝试直接输入url的thenOpen方法。有用。但是因为我想要自动它,在实际触发链接之前我无法知道url。我是CasperJS的新手,有谁知道如何解决这个问题?感谢。
答案 0 :(得分:1)
我遇到同样的问题我已经解决了这个问题,第一个选择器是否存在
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