当试图在我的rails应用程序中进行屏幕捕捉页面时,PhantomJS.rb冻结了。[英] PhantomJS.rb freezing when trying to screen capture page in my rails application

问题描述

我在使用 phantomjs.rb 时无法从我的应用程序中获取屏幕截图宝石.我目前只是在尝试本地网址.如果我让那些工作我稍后会使用 url_for.

在我的控制器中:

Phantomjs.run('./public/javascripts/testScreenCapture.js', 'http://localhost:3000')

还有我的 testScreenCapture.js:

var page = require('webpage').create();

var args = require('system').args;
var url = args[1];

page.open(url, function () {
    window.setTimeout(function () {
      page.render('./public/appPage.png');
      phantom.exit();
    }, 3000);
});

传递 "http://www.google.com" 作为 url 参数可以正常工作,只是当当 rails 服务器挂起时,我从本地服务器传递任何内容,并且我也假设使用 phantomjs 脚本,因为我没有在我的公共文件夹中获得屏幕截图.

更奇怪的是从命令行运行它:

phantomjs public/javascripts/testScreenCapture.js http://localhost:3000

这很好用!所以我假设我的控制器与服务器冲突有问题.有什么想法吗?

推荐答案

你必须使用像 美洲狮.

请参阅此处了解不同选项的概述.

另一个陷阱可能是您的控制器逻辑.如果由 phantom 呈现的页面触发了与调用 phantom 的页面相同的控制器操作,则您将创建一个无限循环.

然后,即使是多线程服务器也会卡住:)

本文地址:https://www.itbaoku.cn/post/1740116.html