Capybara current_url给example.com

时间:2017-02-01 13:53:40

标签: ruby-on-rails-4 rspec capybara poltergeist

前段时间我发现这个真正有用的Capybara提示打开当前页面,因为人类会在测试中途看到它:

  

查找端口地址并暂停测试

     

有时我只是想看看浏览器中发生了什么。尽管save_and_open_page可以让您了解正在发生的事情,但您无法真正点击,因为它为您提供的页面是静态的并且缺少资源。为了深入了解正在发生的事情,我喜欢使用我从导师Mike Pack那里学到的技巧。

     

在测试中的虚线上方,添加这两行代码。请注意,您必须在当前gemset中安装pry或在Gemfile中指定pry才能使用。

puts current_url
require 'pry'; binding.pry
     

运行规范,当它们暂停时,从测试输出中复制url和端口号。打开浏览器并将地址粘贴到窗口中。瞧!您现在正在测试模式下浏览您的网站!

(来自here的提示三)

我记得这很直接,但是现在当我使用它时,主机被命名为“http://www.example.com/”并且毫不奇怪地试图打开它没有 - 在哪里。

我找到一个similar question可能包含足够的信息来弄清楚如何破解Capybara,但我的第一次努力没有奏效我想知道是否有人知道一个开箱即用的解决方案?

我们可能相关的测试宝石是Capybara,Poltergeist,Launchy和Webmock。

1 个答案:

答案 0 :(得分:1)

如果current_url以example.com身份返回,那么您尝试执行此操作的测试很可能是使用rack_test驱动程序(没有JS,非常有限的CSS)。您无法使用rack_test驱动程序将浏览器指向测试,因为它不会启动服务器来为这些测试提供页面。