通过CasperJS或PhantomJS捕获弹出页面内容

通过CasperJS或PhantomJS捕获弹出页面内容,phantomjs,casperjs,Phantomjs,Casperjs,A.html 我也尝试过phantomjs,但我无法在page.png中捕获b.html页面 注意:弹出页面的名称不是固定的。有一些方法和方法,因此您的代码如下所示 var casper = require('casper').create(); casper.start('http://localhost/test/a.html', function() { this.echo(this.getTitle()); }); casper.thenClick('#testLabel')

A.html

我也尝试过phantomjs,但我无法在page.png中捕获b.html页面

注意:弹出页面的名称不是固定的。

有一些方法和方法,因此您的代码如下所示

var casper = require('casper').create();

casper.start('http://localhost/test/a.html', function() {
    this.echo(this.getTitle());
});

casper.thenClick('#testLabel');

casper.then(function() {
    this.capture('page.png');
});

casper.run();

//这将仅在一段时间内将弹出式DOM设置为主活动DOM

//正在执行步骤关闭

var casper = require('casper').create();

casper.start('http://localhost/test/a.html', function() {
    this.echo(this.getTitle());
});

casper.thenClick('#testLabel');

casper.waitForPopup(/.\.html$/, function() {
    this.echo('Popup')
});

casper.withPopup(0, function() {
    this.capture('page.png');
});

casper.run();
完整代码

casper.withPopup(0, function() {
    this.test.assertTitle('Popup title');
});

阅读更多有关

的信息,这不起作用,因为我们无法在waitForPopup中写入直接值b.html此相关的amazon sellercentral Scrappings,因此无法写入直接值
b.html
。如果你能看到这是一个正则表达式,那么你可以动态捕获你想要的任何值。错误答案你能用正则表达式完成吗?我在谷歌上搜索过,然后问,因为你的答案在堆栈溢出上准备好了。这个答案准确地回答了你的问题。您可以提供真实的示例和真实的代码,也可以修改我的代码使其适合您。如果你知道亚马逊手机中心这与打印发票和标签有关,当你点击打印然后以pdf格式打开内容时,我不知道是谁投了你的票,但在实际问题中,弹出屏幕是空白的,弹出窗口在加载内容时需要时间如何解决这个问题
casper.withPopup(0, function() {
    this.test.assertTitle('Popup title');
});
var casper = require('casper').create();

casper.start('http://localhost/test/a.html', function () {
    this.echo(this.getTitle());
});

casper.thenClick('#testLabel');

casper.waitForPopup(0, function () {
    this.echo('Popup');
});

casper.then(function () {
    this.capture('page.png');
});

casper.run();