有时,当使用 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/