首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在casperjs中启动slimerjs (具有绝对路径)的正确方法是什么?

问在casperjs中启动slimerjs (具有绝对路径)的正确方法是什么?
EN

Stack Overflow用户
提问于 2014-02-26 19:22:02
回答 3查看 10K关注 0票数 5

​

​

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

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

代码语言:javascript
复制
    'env_varname': 'SLIMERJS_EXECUTABLE',
    'default_exec' : 'C:\bin\slimerjs\slimerjs.bat'

当我执行casper命令时:

代码语言:javascript
复制
    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

编辑(感谢达伦·库克的回答)以了解更多详细信息:

代码语言:javascript
复制
set PATH=%PATH%;C:\\bin\\slimerjs

如果我为slimer设置了一个Windows PATH,当我执行casperjs test --engine=slimerjs test.js时,我会看到这样的消息:

​

​

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

​

​

因此,我认为我必须修改slimerjs bat文件,从slimerjs.bat文件夹而不是当前的test.js文件夹设置:callexec路径。

这里:

代码语言:javascript
复制
: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
)

通过以下方式:

代码语言:javascript
复制
SET SLIMERDIR=%~dp0

问题是我不熟悉这个语法(批处理文件),它可能已经是正确的,问题不是来自这里。

但我观察到的是,它似乎从当前文件夹中查找application.ini和omni.ja,而不是slimerjs文件夹。

注:第二个想法不起作用,但现在我知道它来自slimerjs。

编辑:

代码语言:javascript
复制
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不再被识别。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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而不使用路径和操作系统兼容性瓶颈的最佳方法:

代码语言:javascript
复制
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

票数 6
EN

Stack Overflow用户

发布于 2014-02-27 17:28:41

将slimerjs放入Windows路径。您可以通过执行以下操作来测试此功能:

代码语言:javascript
复制
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脚本是否需要双反斜杠,所以它可能应该如下所示:

代码语言:javascript
复制
'default_exec' : 'C:\\bin\\slimerjs\\slimerjs.bat'
票数 1
EN

Stack Overflow用户

发布于 2015-09-12 02:08:13

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

推荐安装:

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

@powershell对象绕过设置"iex ((new- -NoProfile net.webclient).DownloadString('https://chocolatey.org/install.ps1'))“&& SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

  • Install NodeJS

choco安装nodejs.install

  • Install SlimerJS、PhantomJS和CasperJS

npm安装-g slimerjs npm安装-g phantomjs npm安装-g casperjs

  • Casperjs.cmd

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 %*

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22039826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档