这导致我浪费时间,我希望我知道为什么。我发现很多例子(并非所有答案)都没有提交表格,它在网页上有效,但在水豚中没有。像find / xpath这样的东西在irb中工作。
网页 带有上传按钮的文件框,附加文件有效(我正在使用poltergeist渲染来查看附加的文件名)
调试/选项已尝试
日志中没有任何内容显示操作正在完成
我有
系统设置
还有进一步的调试来找出问题吗?其他日志我不见了? 任何指导非常感谢
<div class="row">
<div class="large-10 columns" >
<%=form_tag( "/upload_bill", :method=>:post, :multipart => true, :id => "form_upload1") do -%>
<fieldset>
<legend>Select your bill file</legend>
<%=file_field_tag 'bill', :onclick => "checkBill()" -%>
<div class="large-2 columns" >
<!-- TODO: make the browse button the zurb class type -->
<%- if params[:action].eql?( 'index')%>
<%=submit_tag "Upload", :onclick => "checkBill();return false;", :id => "upload_bill_button1", :class => "button postfix" -%>
<% end %>
</div>
</fieldset>
<% end %>
</div>
</div>
<%- if params[:action].eql?('import_bill')%>
<%=link_to (image_tag "/images/btn-uploadbill.png"), "#", :onclick=>"checkBill();return false;", :id => "upload_bill_button2" -%>
<%=link_to (image_tag "/images/btn-cancel.png"), root_path %>
<%- end %>
<script type="text/javascript">
function checkBill(){
var bill = $("#bill").val();
if(bill.split('.').reverse()[0]=="csv"||bill.split('.').reverse()[0]=="pdf"||bill.split('.').reverse()[0]=="pdftranslatedtxt"){
//success bill supported, data send to app
jQuery('#form_upload1').submit();
}
else if(bill==""){return false; }
else{// return error wrong format of bill alert('We only currently support PDF or CSV file format.')
}
}
</script>
更新 我有代码在这个页面的某个实例上工作。我还有一种情况,其中find / trigger正在工作(日志显示操作,但是poltergeist:render显示没有页面更新)
所以,rspec函数是
def new_import_bill(billfile)
path = DATA_TEST+billfile
attach_file("bill", path)
find("#upload_bill_button1").trigger("click")
end
我调试了页面输出,例如
puts page.html
并且有效的页面html和不起作用的页面之间没有区别。但在某些情况下它拒绝单击或者poltergeist.render不会更新。
根据这个poltergeist bug(https://github.com/jonleighton/poltergeist/issues/209)我试过删除full:true。没有区别
还有其他人遇到过这些不一致吗?