0

我在页面上有一个链接按钮:

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

首先我点击链接:

casper.thenClick('#quote');

但我无法捕获弹出窗口。所以我得到链接的 url 并在当前窗口中打开它:

var url = '';

function getQuoteStartUrl() {
    var link = document.querySelector('a#quote');
    return link.getAttribute('href');
}

casper.thenOpen(url, function() {
    this.echo(url);
    this.echo(this.getTitle());
});

网址正确,但页面为空。然后我试试这个:

var url = 'http://quote.html';

casper.thenOpen(url, function() {
    this.echo(url);
    this.echo(this.getTitle());
});

有用。最后我知道为什么它不起作用:它在函数调用之前绑定步骤。所以我试试这个:

casper.then(function() {
    this.echo(url);
    this.thenOpen(url);
    this.echo(this.getTitle());
});

它也有效。

4

1 回答 1

0

你能试试下面的吗?

var url = '';

casper.then(function() {
    url = this.getElementAttribute('a#quote', 'href');
});

casper.thenOpen(url, function() {
    this.echo(url);
    this.echo(this.getTitle());
});

看起来好像您在尝试加载它之前可能没有设置 url。

于 2013-11-06T16:50:02.647 回答