我有一个form_tag,它生成以下HTML:
<form accept-charset="UTF-8" action="http://www.example.com/product_page" id="dates_form" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div>
Min date: <input id="datepicker_mini" name="datepicker_mini" type="text" />
Max date: <input id="datepicker_maxi" name="datepicker_maxi" type="text" />
</form>以上是所有生成的HTML。为了尽可能轻松地调试这个问题,我删除了任何部分和布局。
datepicker字段调用。
我希望避免使用javascript进行测试,只需在日期字段中填写文本日期。我已经尝试过fill_in "datepicker_mini", :with => "01/01/2010",但是虽然它不会导致测试失败,但是当我使用save_and_open_page进行测试时,它也不会填充这个字段。
更新:测试代码
it "runs report" do
login_test_user
within("#dates_form") do
fill_in "datepicker_mini", :with => "01/01/2010"
fill_in "datepicker_maxi", :with => "01/01/2020"
end
save_and_open_page
end任何帮助都将不胜感激。
谢谢。
发布于 2013-09-15 02:27:26
我也有同样的问题。在阅读了capybara的文档之后,我的解决方案是使用page.execute_script()直接为输入设置一个值。
## fill_in "person_birthdate, with: "21/12/1980"
page.execute_script("$('#person_birthdate').val('21/12/1980')")我觉得这有点肮脏,但为我工作。
抓到:
编辑:这也适用于政治作家。
发布于 2014-07-24 17:16:46
我喜欢这样的解决方案:
page.execute_script("$('#show_sale_date').datepicker('setDate', '01/01/2010')")从这里拿来的http://api.jqueryui.com/datepicker/#method-setDate
发布于 2016-04-29 15:47:53
如果您想模拟UI单击,这对我来说是有效的(使用javascript驱动程序)。
当我的数据报警器的ID是“target_date”时,它将导航到下个月,然后选择第15位。
page.execute_script %Q{ $('#target_date').trigger('focus') }
page.execute_script %Q{ $('a.ui-datepicker-next').trigger('click') }
page.execute_script %Q{ $('a.ui-state-default:contains("15")').trigger('click') }https://stackoverflow.com/questions/16050414
复制相似问题