2

CasperJSを使用してiframe内のリンクをたどろうとしていますが、iframeのドキュメントを取得できないようです。

これが私が見つけたiframeのサンプルページを使ったテストです。3番目のiframeには、Casperのframeメソッドに必要なname属性があります。キャスパーAPI

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

casper.start('http://nunzioweb.com/iframes-example.htm');

casper.withFrame('frame', function(){
  this.echo('Page url is ' + this.getCurrentUrl());
  this.echo(this.getHTML());
});

casper.run();

ページのURLは、予想どおり「http://nunzioweb.com/lyrics/455Rocket.html」で返されますが、返されるhtmlはiframeをラップするページです。

[実際にこれを行っているページの]リンクをクリックできるようにiframeにアクセスする方法はありますか?

4

2 に答える 2

4

何らかの理由.getHTML()でここでは機能しませんWebPage。インスタンスから直接ページのHTMLを取得する必要があります。

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

casper.start('http://nunzioweb.com/iframes-example.htm');

casper.withFrame('frame', function(){
    this.echo('Page url is ' + this.getCurrentUrl());
    this.echo(this.page.content);
});

casper.run();

私はその問題に取り組んでいきます。

リンクをクリックするには、例えば。Slick Cityiframeの例の1つ:

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

casper.start('http://nunzioweb.com/iframes-example.htm');

casper.withFrame('frame', function() {
    this.echo('Page url is ' + this.getCurrentUrl());
    this.clickLabel('Slick City');
});

casper.waitForPopup('slickcitydown.htm').withPopup('slickcitydown.htm', function() {
    this.echo('New page url is ' + this.getCurrentUrl());
});

casper.run();

それは与える:

$ casperjs test.js 
Page url is http://nunzioweb.com/lyrics/455Rocket.html
New page url is http://nunzioweb.com/slickcitydown.htm
于 2012-12-19T09:20:21.170 に答える
0

以前のバージョンでは問題が修正されたようです。

casperjs v.1.0.2の質問のコード例を使用しており、期待どおりにiframehttp://nunzioweb.com/lyrics/455Rocket.htmlのhtmlを取得してます。

于 2013-06-04T15:38:25.437 に答える