我是新手,最近开始使用带有casperjs的phantomjs。我想从iframe获取信息,但是phantomjs无法加载它。
这是我的剧本:
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
waitTimeout: 20000,
retryTimeout: 100,
viewportSize: {
width: 1920,
height: 1080
},
pageSettings: {
"userAgent": 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1'
},
localToRemoteUrlAccessEnabled: true
});
casper.start();
casper.open('http://www.badboysbarber.ru/online');
casper.waitForSelector('.y-main-container', function() {
this.echo("Selector appeared.");
});
casper.then(function() {
this.capture('screen.png');
});
casper.run();
因此,幻像会抛出错误(尽管选择器已正确定义):
[error] [phantom] Wait timeout of 20000ms expired, exiting.
有人可以帮我吗?也许我做错了什么?谢谢。
答案 0 :(得分:0)
iframe
将文档加载到另一个文档中。如果您想使用框架并使用CasperJS来获取数据,则withFrame()
中可能需要Casper.prototype
。
以下脚本捕获主页中第一个iframe
的原始HTML内容:
var casper = require('casper').create({
viewportSize: {
width: 1920,
height: 1080
},
pageSettings: {
'userAgent': 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1'
},
localToRemoteUrlAccessEnabled: true
});
casper.start('http://www.badboysbarber.ru/online');
casper.withFrame(0, function () {
this.echo(this.getHTML()); // HTML code of the first iframe
});
casper.run();