5

slimerjs 启动

好吧,我可以通过指定 slimer.bat 文件的路径来启动 slimerjs:C:\bin\slimerjs\slimerjs.bat 然后执行我的文件。

但是,如果我修改 casperjs 文件(在 bin\ 中)并修改默认 exec 为 slimer :

    '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 中执行 slimerjs,无论我在哪里,就像在 phantomjs 中一样,所以我需要设置一个绝对路径(或从根目录的相对路径)。

我不想在 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 时,我会收到以下消息:

失败 slimerjs

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

小路

所以我想我必须修改 slimerjs bat 文件,以设置 slimerjs.bat 文件夹中的 :callexec 路径,而不是当前的 test.js 文件夹。

这里 :

: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 文件夹。

PS:第二个想法不起作用,但现在我知道它来自 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 不再被识别。

4

3 回答 3

6

答案->我终于找到了适合我的方法:像这样:

SlimerArchOk

所以我在 PATH 中添加了 slimer,并且我必须将 application.ini 和 omni.ja 与包含我的测试文件的目录处于同一级别。这样不方便,我可以用 slimerJS 启动我的目录或文件。

另请参阅Git 问题


编辑:这里最好的解决方案:通过 npm 安装它:npm install -g slimerjs-g 随处可用。就是这样,只需选择您--engine=slimerjs的 casper 即可。感谢此节点模块。

对于在没有 PATH 和操作系统兼容性的情况下安装 phantomjs + casperjs + slimerjs 的最佳方法 headlock :

npm install -g phantomjs
npm install -g casperjs
npm install -g slimerjs

在 Windows 中,exe 将在此处设置:C:\Users\UserName\AppData\Roaming\npm(您不需要将它们放在 PATH 中,节点 -npm 实际上 - 使用 -g 标志管理它)。

请记住 slimerjs 存在一些相对路径问题,因此为了保持 phantom 和 slimer 之间的兼容性,请使用fs.workingDirectory,请参阅Is there a way to step in to step in to CasperJS code and Debug step by

于 2014-05-21T15:40:12.897 回答
1

将 slimerjs 放入 Windows 路径。您可以通过以下方式测试这是否有效:

set PATH=%PATH%;C:\bin\slimerjs
casperjs --engine=slimerjs test.js

如果这很好,您可以全局设置它。这是关于如何以编程方式执行此操作的 SO 问题:如何从 cmd 永久更新 PATH 变量?Windows 这是关于如何从 GUI 执行此操作的众多页面之一:http: //www.computerhope.com/issues/ch000549.htm

作为另一个想法,我想知道 casper 脚本是否需要双反斜杠,所以它应该看起来像:

'default_exec' : 'C:\\bin\\slimerjs\\slimerjs.bat'
于 2014-02-27T09:28:41.353 回答
0

如果您在 Windows 中运行,则应设置 SLIMERJS_EXECUTABLE 环境变量。如果您已经完成 Fanch 推荐的安装,请跳至步骤


推荐安装:

  1. 安装Chocolatey(以管理员身份打开命令提示符)

    @powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
  2. 安装 NodeJS

    choco install nodejs.install
  3. 安装SlimerJSPhantomJSCasperJS

    npm install -g slimerjs
    npm install -g phantomjs
    npm install -g casperjs
  4. FIX Casperjs.cmd CasperJS
    的默认安装存在问题,它尝试通过 python 加载它。虽然这没问题,但 CasperJS 带有一个原生的 .Net 可执行文件,这就是在 Windows 上运行 CasperJS 应该使用的。要解决此问题,请编辑 %APPDATA%\npm 文件夹中的 casperjs.cmd 文件

    notepad %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 %*
于 2015-09-11T18:08:13.170 回答