【问题标题】:casperjs exit()/die() doesn't return to current directorycasperjs exit()/die() 不返回当前目录
【发布时间】:2014-09-16 14:13:56
【问题描述】:

我对 casperjs 很陌生(在 phantomjs 上运行)——我敢肯定我在这里可能缺少一个基本的编程元素;看看是否有人有一些见解。在我的脚本结束时,我调用casper.exit(),它确实退出了脚本并看似退回到当前目录,但是当前目录不会显示在命令窗口中。

我认为这与脚本本身无关,我什至可以使用最基本的脚本进行复制。下面是结果截图:

黄色圆圈在.exit() 调用之后的位置,我希望看到 cd(红色下划线)

我尝试使用 casper.die() 得到类似的结果。

虽然这没什么大不了的,但可能会让不太熟悉 casper/phantom 和脚本本身的人感到困惑。我想我还有几个问题:

  1. 这是 phantomjs/casperjs 构建方式的预期行为吗?
  2. 如果不是,这是一件“坏事”吗? (影响内存、堆栈等)
  3. 有没有办法使用 casper/phantom 或脚本本身中的其他方法返回 CD?
  4. 额外问题.. 使用casper.die()casper.exit() 有区别吗?我看到.die() 记录了一条状态消息,但除此之外还有停止脚本执行的首选方法还是只是语法as in PHP

【问题讨论】:

    标签: javascript command-line phantomjs casperjs


    【解决方案1】:

    这是 casperjs 可执行文件在 windows 上的正常行为。这可能与可执行文件的 python 部分有关,因为 phantomjs 没有这种行为。

    另一个指标是当casperjs像here描述的那样通过phantomjs运行时,没有这样的行为,退出后我得到一个正常的提示。

    我想说,这是一个外观问题,当您第一次遇到它时可能会让您大吃一惊。这不是一个真正的问题。

    关于 Bonus 问题: die 可以被视为更高级的 exit,因为它本身调用了 exit,但它是退出 casper 的一种更可控的方式。有一条可选消息以红色写入 stout,还有一个额外的 die 事件处理程序。 die 还设置了脚本的执行时间。

    【讨论】:

    • 谢谢.. 说得通。我也没有看到运行幻影,这就是为什么我认为我可能做错了什么。
    • 添加了奖励问题答案。我现在得到什么? ;)
    • 如果其他人遇到此问题,请在网上找到此内容:die() 只是echo() 然后exit() 的快捷方式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2010-10-27
    • 2022-09-23
    相关资源
    最近更新 更多