
嗯,我可以通过指定slimer.bat文件的路径: C:\bin\slimerjs\slimerjs.bat来启动slimerjs,然后执行我的文件。
但如果我修改casperjs文件(在bin\中),并修改slimer的默认exec:
'env_varname': 'SLIMERJS_EXECUTABLE',
'default_exec' : 'C:\bin\slimerjs\slimerjs.bat'当我执行casper命令时:
casperjs --engine=slimerjs test.js它不起作用,到slimerjs.bat的路径似乎被忽略了。
我也试过了:https://github.com/laurentj/slimerjs/blob/master/BUILD.md
但是仅有slimerjs.exe是不够的,我需要在执行测试的当前文件夹中包含application.ini和omni.ja,而且我不想在每个文件夹中都添加一些文件。
我想要的只是在casperjs中使用engine属性执行slimerjs,不管我所在的文件夹是什么,就像在phantomjs中一样,所以我需要设置一个绝对路径(或从root开始的相对路径)。
我不想在slimerjs.bat文件夹中指定要执行的文件夹或js测试: casperjs test C:/bin/try/test.js --engine=slimerjs。
这里有一个类似的问题:https://github.com/n1k0/casperjs/issues/591
编辑(感谢达伦·库克的回答)以了解更多详细信息:
set PATH=%PATH%;C:\\bin\\slimerjs如果我为slimer设置了一个Windows PATH,当我执行casperjs test --engine=slimerjs test.js时,我会看到这样的消息:

但是在test.js文件夹中添加这两个文件可以解决这个问题。

因此,我认为我必须修改slimerjs bat文件,从slimerjs.bat文件夹而不是当前的test.js文件夹设置:callexec路径。
这里:
:callexec
if ["%HIDE_ERRORS%"]==[""] (
%SLIMERJSLAUNCHER% -app "%SLIMERDIR%application.ini" %PROFILE% -attach-console -no-remote %__SLIMER_ARGS%
) ELSE (
%SLIMERJSLAUNCHER% -app "%SLIMERDIR%application.ini" %PROFILE% -attach-console -no-remote %__SLIMER_ARGS% 2>NUL
)通过以下方式:
SET SLIMERDIR=%~dp0问题是我不熟悉这个语法(批处理文件),它可能已经是正确的,问题不是来自这里。
但我观察到的是,它似乎从当前文件夹中查找application.ini和omni.ja,而不是slimerjs文件夹。
注:第二个想法不起作用,但现在我知道它来自slimerjs。
编辑:
REM % ~ d[rive] p[ath] 0[script name] is the absolute path to this bat file, without quotes, always.
REM ~ strips quotes from the argument所以这条路看起来很好,实际上它只适用于slimerjs : slimerjs test.js运行得很好,而且它不需要application.ini。所以这两者的结合是行不通的。
当您使用casper命令启动它时,路径是不同的(当前文件夹),并且application.ini不再被识别。
发布于 2014-05-21 23:40:13
Answer ->我终于找到了适合我的方法:如下所示:

因此,我将slimer放在PATH中,并且我必须让application.ini和omni.ja与我的目录处于相同的级别,以满足我的测试文件。这样就不会不方便了,而且我可以用slimerJS启动我的目录或文件。
另请参阅Git Issue
EDIT :在这里最好的解决方案:通过npm:npm install -g slimerjs -g安装它,以便随处可用。就是这样,只要用casper选择你的--engine=slimerjs,它就能工作了。此节点模块的Thx。
要获得安装phantomjs + casperjs + slimerjs而不使用路径和操作系统兼容性瓶颈的最佳方法:
npm install -g phantomjs
npm install -g casperjs
npm install -g slimerjs在windows中,可执行文件将设置为: C:\Users\UserName\AppData\Roaming\npm (您不需要将它们放在PATH中,节点-npm实际上使用-g标志来管理它)。
请记住,slimerjs有一些相对的路径问题,所以为了保持幻影和slimer之间的兼容性,请使用fs.workingDirectory,请参阅Is there a way to step in to CasperJS code and Debug step by step
发布于 2014-02-27 17:28:41
将slimerjs放入Windows路径。您可以通过执行以下操作来测试此功能:
set PATH=%PATH%;C:\bin\slimerjs
casperjs --engine=slimerjs test.js如果这是好的,您可以全局设置它。这是一个关于如何以编程方式完成此操作的问题:How to update PATH variable permanently from cmd? Windows,这里是关于如何在图形用户界面中执行此操作的众多页面中的一个:http://www.computerhope.com/issues/ch000549.htm
作为另一种想法,我想知道casper脚本是否需要双反斜杠,所以它可能应该如下所示:
'default_exec' : 'C:\\bin\\slimerjs\\slimerjs.bat'发布于 2015-09-12 02:08:13
如果在Windows中运行,则应设置SLIMERJS_EXECUTABLE环境变量。如果您已经完成了Fanch推荐的安装,请跳到步骤
推荐安装:
@powershell对象绕过设置"iex ((new- -NoProfile net.webclient).DownloadString('https://chocolatey.org/install.ps1'))“&& SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
choco安装nodejs.install
npm安装-g slimerjs npm安装-g phantomjs npm安装-g casperjs
CasperJS的默认安装有一个问题,它试图通过python加载它。虽然这没问题,但CasperJS附带了一个原生的.Net可执行文件,这就是你应该用来在Windows上运行CasperJS的文件。要解决此问题,请编辑%APPDATA%\npm文件夹中的casperjs.cmd文件
记事本%APPDATA%\npm\casperjs.cmd
并将内容替换为以下内容:
@ECHO OFF SET PHANTOMJS_EXECUTABLE=%APPDATA%\npm\node_modules\casperjs\node_modules\phantomjs\lib\phantom\phantomjs.exe SET SLIMERJS_EXECUTABLE=%APPDATA%\npm\slimerjs.cmd %~dp0\node_modules\casperjs\bin\casperjs.exe %*
https://stackoverflow.com/questions/22039826
复制相似问题