在 Rails 应用程序的 Ruby 中使用 PhantomJS
Using PhantomJS in Ruby on Rails application
我想在我的主要应用程序生命周期中使用 PhantomJS 来截取用户提交的远程 URL 的屏幕截图。
我熟悉 Poltergeist 与 Capybara/Rspec 的结合使用。但是我将如何手动初始化 page
对象?
要在您的应用中初始化水豚会话,您只需执行类似
的操作
session = Capybara::Session.new(:poltergeist)
( 如文档所述 here) and then rather than using page
just call Capybara methods on session
. One thing to note is that if you're going to test the app with Capybara too you will probably want to register a separate driver for the app and testing - https://github.com/jnicklas/capybara#configuring-and-adding-drivers 。此外,由于 Capybaras 配置不是线程安全的,更改任何 Capybaras 设置都可能会影响测试会话和应用内会话。
更好的解决方案可能是设置 a separate Node.js
service which runs phantom.js
- in fact there are quite a few projects that provide a ready made screen capture webserver / console command。
Capybara 是一个测试工具,通过 ruby 调用 javascript 运行 时间会增加大量开销,而且不是线程安全的。事实上,它并非设计用于 运行 在生产中也是一个相当大的问题。
相反,您只需通过 HTTP 或通过 运行来自 Ruby 的 shell 命令调用您的屏幕截图服务。
我非常喜欢 Rails 应用程序中的 phantomjs。
我的建议是使用:
watir (https://github.com/watir/watir)
phantomjs (http://phantomjs.org/download.html)
您可以按照以下步骤轻松截取屏幕截图:http://watir.github.io/docs/screenshots/
如果您想使用 Page,我认为您应该在此处看到 PageObject:https://github.com/watir/watir/wiki/Page-Objects
我想在我的主要应用程序生命周期中使用 PhantomJS 来截取用户提交的远程 URL 的屏幕截图。
我熟悉 Poltergeist 与 Capybara/Rspec 的结合使用。但是我将如何手动初始化 page
对象?
要在您的应用中初始化水豚会话,您只需执行类似
的操作session = Capybara::Session.new(:poltergeist)
( 如文档所述 here) and then rather than using page
just call Capybara methods on session
. One thing to note is that if you're going to test the app with Capybara too you will probably want to register a separate driver for the app and testing - https://github.com/jnicklas/capybara#configuring-and-adding-drivers 。此外,由于 Capybaras 配置不是线程安全的,更改任何 Capybaras 设置都可能会影响测试会话和应用内会话。
更好的解决方案可能是设置 a separate Node.js
service which runs phantom.js
- in fact there are quite a few projects that provide a ready made screen capture webserver / console command。
Capybara 是一个测试工具,通过 ruby 调用 javascript 运行 时间会增加大量开销,而且不是线程安全的。事实上,它并非设计用于 运行 在生产中也是一个相当大的问题。
相反,您只需通过 HTTP 或通过 运行来自 Ruby 的 shell 命令调用您的屏幕截图服务。
我非常喜欢 Rails 应用程序中的 phantomjs。
我的建议是使用:
watir (https://github.com/watir/watir)
phantomjs (http://phantomjs.org/download.html)
您可以按照以下步骤轻松截取屏幕截图:http://watir.github.io/docs/screenshots/
如果您想使用 Page,我认为您应该在此处看到 PageObject:https://github.com/watir/watir/wiki/Page-Objects