我正在尝试使用CasperJS来关注iframe中的链接,但我似乎无法访问iframe的文档。
这是使用我找到的iframe示例页面的测试。 第三个iframe有一个我需要Casper框架方法的name属性。 Casper 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();
页面网址按照我的预期返回“http://nunzioweb.com/lyrics/455Rocket.html”,但返回的html是包装iframe的页面。
任何想法我如何进入iframe所以我可以点击链接[在页面上我实际上是这样做的?]
答案 0 :(得分:4)
由于某些原因.getHTML()
在这里不起作用,您必须获取页面HTML
直接来自WebPage
实例。
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();
我会处理这个问题。
点击链接,例如。在iframe示例中的Slick City
一个:
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
答案 1 :(得分:0)
在最新版本中看起来问题已修复。
我正在使用casperjs v.1.0.2问题中的代码示例,我正在获得iframe http://nunzioweb.com/lyrics/455Rocket.html的html。