CasperJS:打开一个新窗口

时间:2013-11-07 05:36:40

标签: casperjs

在页面上有一个链接:

<a id="quote" href="quote.html" target="_blank">Quote</a>

在CasperJS中点击它,但我无法在新窗口中捕获该页面。

casper.start('http://domain.com');
casper.thenClick('#quote');
casper.then(function() {
    this.capture('file1.png');
});

casper.run();

3 个答案:

答案 0 :(得分:4)

另见casperjs中的文档:

casper.waitForPopup();
casper.withPopup();

新窗口(点击带有target =&#34的链接; _blank&#34;属性)可以视为弹出窗口。

文件:http://docs.casperjs.org/en/latest/modules/casper.html#waitforpopup

答案 1 :(得分:1)

CasperJS不适用于新窗口。你必须在链接之前手动删除“target = _blank”:

this.evaluate(function () {
    [].forEach.call(__utils__.findAll('a'), function(link) {
        link.removeAttribute('target');
    });
});

答案 2 :(得分:0)

casper.start('http://domain.com');
casper.thenClick('#quote');
casper.waitForResource('file1.png' , function() {
this.capture('file1.png');
});

casper.run();

您应该尝试等待加载所有资源,然后继续其他工作。这将始终有效。