2013-06-03 95 views
24

我一直在Windows 7上使用phantom.js很长一段时间了(我认为v1.4.0是我使用的第一个版本),一切都很好。但由于某种原因,进程在调用phantom.exit()时不再正常终止,我完全不知道为什么。phantomjs退出()不终止进程

这个问题从v1.7.0开始发生,从一天到另一天。在1.7.0中,所有的东西都能正常工作,但它没有做任何事情。即使升级到1.8.0和现在的1.9.0,它仍然不起作用。控制台挂起。我无法输入任何内容,phantomjs.exe仍然列在taskmanager的进程列表中,即使CTRL + C也不会执行任何操作。整件事情都被冻结了。

控制台中的下划线闪烁,好像它预期有更多输入,但我无法输入任何内容。我唯一的机会是使用[X]按钮关闭cmd窗口,这对完成自动化测试是完全愚蠢的。

我使用从http://phantomjs.org/下载的预编译二进制文件,正如我所说的:它从一天停止工作到另一天。我甚至把它重新安装了几次,甚至到不同的文件夹,但是这个过程不再终止。任何人有一个想法可能是什么问题?

phantom screenshot after calling phantom.exit()

+0

你提供了一个REPL模式的例子吗?它只适用于这种模式吗?请注意,从团队来说,“这是一个新功能,它的构建使得各种Javascript操作成为可能:有bug” – Cybermaxs

回答

47

这是一个已知问题的Nvidia驱动程序,当你有两张牌。 要解决此问题,您需要在NVidia控制面板(NVidia控制面板>管理3D设置>全局设置)中选择“高性能NVidia处理器”。

更多此处了解:https://github.com/ariya/phantomjs/issues/10845

+1

哇,它的工作原理!谢谢!我一直在寻找一个相当长时间的解决方案! –

+9

如果您不想更改全局设置,只能通过(NVidia控制面板>管理3D设置>程序设置)并选择phantomjs.exe作为程序和高性能NVidia处理器,才能为phantomjs.exe完成此操作首选的图形处理器。 – Hisham

+0

你先生,只是救了我头痛。谢谢! –