Rspec Capybara发现字段不起作用

Joe*_*n29 5 rspec ruby-on-rails capybara

我使用capybara和rspec运行Rails 4(操作系统是Ubuntu 13.10).我遇到了问题 - 当我运行rspec我的规格工作时,包括使用capybara的fill_in方法的那些.但是在一个规范中,我需要使用capybara的find_field方法,它根本不起作用.它给了我以下错误:

Failure/Error: page.find_field('From:').set(Date.today - 1.month)
 Capybara::ElementNotFound:
   Unable to find field "From:"
Run Code Online (Sandbox Code Playgroud)

现在,我在page.find_field ...行之前插入了一个"puts page.html"行,它打印的html包含以下行:

<div class="date-range-picker">
<span class="from-date"><label for="from_date">From:</label> <input id="from_date"    name="from_date" type="date" value="2013-12-23" /></span>
 <span class="to-date"><label for="to_date">To:</label> <input id="to_date"  name="to_date" type="date" value="2013-12-30" /></span>
 </div>
Run Code Online (Sandbox Code Playgroud)

所以元素在那里,但是没有被find_field方法拾取.有任何想法吗?

Joe*_*n29 9

好吧,经过多次蜿蜒Capybara的源文件,我发现了问题.#find_field使用时,该方法似乎无法正常工作Capybara-webkit.该方法仅在具有js:true参数的示例中失败,因此这应该是第一个线索.无论如何,似乎这是因为某些方法命名冲突capybara和之间的冲突capybara-webkit,但我没有太仔细地分析它,所以我不能确定.

我改变了find_field('from_date'),find('#from_date')现在一切正常.它也适用于更换为:rack_test驱动程序,但由于我需要webkit,我也会坚持.这个问题记录在哪里吗?