为什么不是't casper.log记录任何内容
Why isn't casper.log logging anything?
我想要下面的Casperjs脚本来打开谷歌,搜索一个术语,并记录页面的标题:
var title = ""
var casper = require('casper').create({
verbose: true,
logLevel: 'debug',
pageSettings: {
loadImages: false, // The WebPage instance used by Casper will
loadPlugins: false // use these settings
//userAgent: 'Mozilla/5.0 (Macintosh Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4'
}
})
casper.start('http://google.co.uk/', function() {
// search for 'casperjs' from google form
this.fill('form[action="/search"]', {
q: 'casperjs'
}, true)
})
casper.thenEvaluate(function() {
// aggregate results for the 'casperjs' search
title = document.title
})
casper.log(title, 'warning')
casper.run()
但什么也不输出:
[警告][幻影]
我做错了什么?
您的代码有两个问题。
- CasperJS是异步的
- CasperJS(就像PhantomJS一样)有两个上下文,DOM上下文是沙盒的
这应该有效:
casper.then(function() {
var title = this.evaluate(function() {
return document.title
})
this.log(title, 'warning')
})
甚至这个:
casper.then(function() {
var title = this.getTitle()
this.log(title, 'warning')
})
相关文章:
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- Array.length似乎不起作用;console.log则显示其他情况
- AngularJs对所有页面中的所有记录进行排序
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- window.location替换并传递URL历史记录条目中的变量
- 扩展 console.log() 的 javascript Web 应用程序的客户端日志记录
- 节点.js spawn:控制台.log 不记录两次,process.stdin.on('data',ca
- 使用 console.log() 在 HTML5 Audio API 和 JavaScript 中记录音频振幅
- 节点.js 5.5.0 控制台.log不会记录
- 为什么控制台.log在分配值之前记录值
- 为什么不是't casper.log记录任何内容
- 为什么console.log()和console.dir()记录的对象属性没有'还不存在
- 我如何创建一个函数,每次jQuery绑定到单击事件时,它都会详细记录console.log
- 当我console.log用户的单选按钮选择时,记录的总是后面一个
- Selenium firefox 21在记录时无法进行log.debug,在javascript中登录时没有显示任何内容
- 为什么' window.console.log(this) '不记录控制台对象
- Javascript将图像存储在数组中的对象中,在console.log()中,但在记录对象时
- 为什么我的测试失败,并且lodash方法中的console.log()语句没有记录日志
- 为什么console.log记录$(this).data
- 控制台.log和记录器.log在节点JS中的区别