Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从python调用我的第一个casper.js脚本_Javascript_Python_Phantomjs_Casperjs - Fatal编程技术网

Javascript 从python调用我的第一个casper.js脚本

Javascript 从python调用我的第一个casper.js脚本,javascript,python,phantomjs,casperjs,Javascript,Python,Phantomjs,Casperjs,蟒蛇文字 import os import subprocess APP_ROOT = os.path.dirname(os.path.realpath(__file__)) CASPER = "C:\casperjs\bin\casperjs" SCRIPT = os.path.join(APP_ROOT,'test.js') params = CASPER + ' ' + SCRIPT print subprocess.check_output(params, shell=True) ca

蟒蛇文字

import os
import subprocess
APP_ROOT = os.path.dirname(os.path.realpath(__file__))
CASPER = "C:\casperjs\bin\casperjs"
SCRIPT = os.path.join(APP_ROOT,'test.js')
params = CASPER + ' ' + SCRIPT
print subprocess.check_output(params, shell=True)
casper.js示例

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

casper.start('http://casperjs.org/', function() {
    this.echo(this.getTitle());
});

casper.thenOpen('http://phantomjs.org', function() {
    this.echo(this.getTitle());
});

casper.run();
问题-python脚本中的最后一行

我想知道什么…

  • 什么是“print subprocess.check_output(params,shell=True)”在做什么,params是什么,我假设shell意味着print to shell,也称为命令行。为什么会出错

  • 什么是“APP_ROOT=os.path.dirname(os.path.realpath(文件)”???你能把它分解成小块吗

这是我从你那里得到的

https://www.youtube.com/watch?v=Acrx-AjCo8Q

以下是您可以做的事情:

在名为
run\u casper\u sample.py的文件中输入以下代码:

import os
import subprocess
APP_ROOT = os.path.dirname(os.path.realpath(__file__))
CASPER = "C:\casperjs\bin\casperjs"
SCRIPT = os.path.join(APP_ROOT,'test.js')
params = CASPER + ' ' + SCRIPT
output = subprocess.check_output(params, shell=True)
然后在命令行中键入以下命令:

python -i run_casper_sample.py
-i
选项在交互式shell中运行Python

现在,通过以下方式检查您感兴趣的每件事情:

>>> print(repr(APP_ROOT))
或者只是:

>>> APP_ROOT
您还可以获得各种内置帮助,例如:

>>> help(subprocess.check_output)

NB:
>
只是与Python交互式shell匹配的标记。

一直说“NameError:name'file'未定义”。请将确切的错误粘贴到类似的内容中,或者发布您遇到的问题的新问题。我上面的答案是正确的,它确实有效。嗨,准确的错误如上所述名称错误:未定义名称“文件”。这是代码的第三行,APP_ROOT=blah。。。。很遗憾,你的回答对我不起作用。我仍然不断地被提示名称“file”未定义。@yoshiserry我要求一份准确的拷贝“n paste”是因为你描述的内容非常不准确和错误。您在上面假装的代码段和我在回答中给出的代码段不包含对名为
文件
的对象的引用。这里有
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。由于不相交,我实际上不知道如何帮助您:/I复制粘贴我在问题中提到的python n js代码。我得到[joshua@JOSHUA-PC文档]$python open.py文件“open.py”,第7行打印子流程。检查输出(参数,shell=True)^syntaxer错误:无效语法[joshua@JOSHUA-PC文档]$您需要从
.py
文件调用它。在python shell中运行时,这将不起作用,因为不会定义文件。