无法通过mac上的python执行casperjs

时间:2016-08-05 08:45:04

标签: python macos casperjs

我对Mac很陌生,对不起,如果这很简单的话。

我可以使用命令在终端上运行我的javascript文件:

-Dsource.skip

但是,我想通过python脚本执行此命令。

这就是我所拥有的:

casperjs myfile.js

返回pathBefore = os.getcwd() os.chdir("path/to/javascript/") cmd_output = subprocess.check_output(["casperjs click_email_confirm_link.js"], shell = True) os.chdir(pathBefore) print cmd_output

正如您所看到的,更改工作目录并不起作用。 我无法弄清楚如何使/ bin / sh识别casperjs,任何帮助都将非常感激

感谢

编辑:这就是我的代码现在的样子

.bash_profile环境变量:

/bin/sh: casperjs: command not found

.profile环境变量:

export PATH=$PATH:/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs

export PHANTOMJS_EXECUTABLE="/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs"

返回错误:

`try: CASPER ='/usr/local/bin/casperjs' SCRIPT = 'path/to/javascript/click_email_confirm_link.js' params = CASPER + ' ' + SCRIPT stdout_as_string = subprocess.check_output(params, shell=True) print stdout_as_string except CalledProcessError as e: print e.output`

1 个答案:

答案 0 :(得分:0)

在终端输入以下三行解决了我的问题: sudo ln -s /path/to/bin/phantomjs /usr/local/share/phantomjs sudo ln -s /path/to/bin/phantomjs /usr/local/bin/phantomjs sudo ln -s /path/to/bin/phantomjs /usr/bin/phantomjs

并使用python代码:

commands = '''
pwd
cd ..
pwd
cd shared/scripts/javascript
pwd
/usr/local/Cellar/casperjs/1.1.3/libexec/bin/casperjs click_email_confirm_link.js
''' 

process = subprocess.Popen('/bin/bash', stdin=subprocess.PIPE, stdout=subprocess.PIPE)
out, err = process.communicate(commands.encode('utf-8'))
print(out.decode('utf-8'))

以下文件的编辑方式如下:

vi .bash_profile export PHANTOMJS_EXECUTABLE=/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs export PATH=$PATH:/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs

vi .bashrc + source .bashrc export PHANTOMJS_EXECUTABLE=/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs export PATH="/usr/local/Cellar/phantomjs/2.1.1/bin:$PATH"

vi .profile export PHANTOMJS_EXECUTABLE=/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs export PATH="$PATH:/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs"