如何使用casperJS获取新页面的URL

问题描述 投票:2回答:2

我点击按钮时使用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();
    });

}
javascript web-scraping phantomjs casperjs window.open
2个回答
2
投票

方法“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();
        });

});

1
投票

您可以使用以下方法之一获取CasperJS中当前页面的URL:

© www.soinside.com 2019 - 2024. All rights reserved.