ruby-on-rails - 我可以看看 PhantomJS 中发生了什么吗?

标签 ruby-on-rails testing cucumber phantomjs

有时,当使用 Cucumber for Rails 4 在 PhantomJS 中运行自动化测试时,坐在我的屏幕前,查看窗口,并确切地看到浏览器在做什么会非常非常有用。

有时您的代码和测试都是正确的,但测试仍然会间歇性地失败。这通常是因为脚本、动画或某些 CSS 妨碍了它。但是查看屏幕截图、深入 DOM 检查器或使用调试器不足以捕获这些边缘情况。

有什么方法可以让一个窗口查看 PhantomJS 在后台做什么?它可以是 X Window 中的某个东西,或者是在 VNC 服务器中运行的东西,等等。任何可视化的东西都将极大地帮助调试,尤其是在处理那些挑剔的细节时。

我发现了一个名为 PhantomVNC 的小程序,但它并没有告诉我它是如何工作的。它看起来像是通过 VNC 提供一系列屏幕截图。

我尝试过 PhantomJS 和 Capybara-WebKit,但这些 headless 浏览器都没有其他“头”选项。 Selenium-WebDriver 的设置似乎很复杂,而且似乎只能与 Firefox 这样的完整浏览器一起使用,这可能会导致比它解决的问题更多的问题。

如果您有任何想法,请告诉我。提前谢谢你。

最佳答案

不确定具体关于 Cuc/Rails - 但我专门为此准备了第二个 chrome/webdriver 虚拟机。我专门将 PhantomJS 用于 headless 自动验收测试,但是当测试出现问题并且我正在尝试诊断时,实时查看浏览器可能会有所帮助。

换句话说,启动一个 Ubuntu 桌面虚拟机,安装 chrome,安装 selenium 服务器和 chrome webdriver。登录虚拟机,打开 chrome,确保 selenium 正在运行,然后配置您的测试套件以连接到此实例的 selenium webdriver 服务(通常是端口:4444)。运行您的测试,您应该能够在 VM 上看到 chrome 实例。

关于ruby-on-rails - 我可以看看 PhantomJS 中发生了什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19897912/

相关文章:

ruby-on-rails - sidekiq getaddrinfo错误(没有地址)

ruby-on-rails - 停止在 Rails 和浏览器中缓存图像?

ruby-on-rails - 为什么安装 Ruby on Rails 会产生错误 "size of array ' ruby​​_check_sizeof_voidp' is negative”?

java: 在泛型方法中使用模拟参数,它会出错

jquery - 当我从 jquery 选择值时,Angularjs 范围不会更新

mysql - Rails 4 从 has_one 关联访问表属性

ruby-on-rails - 测试 Rails REST XML API 的最佳方式?

c# - 对 Web 控件进行单元测试时出现空错误

javascript - 使用 Cucumber + capybara + selenium 测试 Rails 应用程序会导致空白页

java - 范围报告被覆盖而不是附加到多个测试