我点击按钮时使用casperJS来获取链接。在javaScript中使用window.open返回链接。
我写的代码在点击按钮后记录了所有页面,但幻象未在终端窗口中退出。还有一些页面只显示:空白,尤其是最后一页。
var casper = require('casper').create();
var page = require('webpage').create();
var address = 'http://www.example.com';
page.open(address, function() {
page.onPageCreated = function(newPage) {
newPage.onClosing = function(closingPage) {
console.log('A child page is closing: ' + closingPage.url);
/* if i set phantom.exit() it will only log the first page url.
Problem: I need all page urls. */
}
}
page.evaluate(function() {
$(".button").click();
});
}
方法“getCurrentUrl()”将返回当前url。这是一个简单(不是真正有意义的)示例:
casper.test.begin('My Test', 1 , function suite(test) {
casper.start().viewport(1600,1000).thenOpen("https://blabla.de", function() {
var mylink = this.getElementInfo("#linkid").text;
this.clickLabel(mylink);
});
casper.waitForSelector("#page2", function() {
this.echo(this.getCurrentUrl());
});
casper.run(function() {
test.done();
});
});
您可以使用以下方法之一获取CasperJS中当前页面的URL:
casper.getCurrentUrl()
:
检索当前页面URL。请注意,URL将被URL解码。casper.page.url
:
访问现有的PhantomJS WebPage实例(page),并获取网页的当前URL。casper.evaluate(function () { return location.href; })
:
评估页面DOM环境中的页面URL。