如何打印CasperJS调试结果到文本文件

How to print CasperJS debugging results to text file

本文关键字:结果 调试 文本 文件 CasperJS 何打印 打印      更新时间:2023-09-26

我无法在命令提示符中读取调试问题。我可以将其发送到我的PhantomJS或CasperJS脚本中的文本文件吗?

这是我的python代码;

import os
import subprocess
#proxies = {'https': 'http://wmhproxy2:8080'}
APP_ROOT = os.path.dirname(os.path.realpath(__file__))
CASPER = "C:/casperjs/bin/casperjs"
#SCRIPT = os.path.join(APP_ROOT,'unicorn.js')
SCRIPT = os.path.join(APP_ROOT,'unicorn.js')
params = CASPER +' '+ SCRIPT
paper = subprocess.check_output(params,shell=True)
rock = paper.text
salesforce = open('S:/N/salesforce2.txt','w')
salesforce.write(write)
print(subprocess.check_output(params,shell=True))

CasperJS脚本:

var casper = require('casper').create({
  verbose: true,
  logLevel: "debug"
});
var x = require('casper').selectXPath;
casper.options.waitTimeout = 7000;
casper.start('http://www.click2houston.com/',function(){
  this.echo(this.getTitle());
}).viewport(1200,1000);
casper.run();

是的,您可以将日志附加到CasperJS脚本中的文件中。

CasperJS有一个内部事件管理,它公开了log事件。将一个简单对象传递给事件处理程序,该事件处理程序也包含日志消息。如果你想要一个不同的日志格式,那么你需要自己做,或者在你的事件处理程序中实现一部分日志代码。

var fs = require("fs");
fs.write("mylogfile.log", "", "w"); // overwrite log file
casper.on("log", function(entry){
    fs.write("mylogfile.log", entry.message + "'n", "a");
});

CasperJS是建立在PhantomJS之上的,所以你可以直接使用PhantomJS的文件系统模块。当然,您也可以将日志文件作为命令行选项传递到脚本中,并通过casper.cli将其取出。