我正在尝试将文件上传到我们的控制台,该文件工作正常,但较大文件的相同代码会引发超时错误。当我上传文件时,我断言进度条出现,表明文件仍在上传。
以下是上传文件的代码:
Then (/^I upload with id "(.*?)" file present in the location "(.*?)"$/) do |id_name,filepath|
id_name = config[id_name]
filepath.split(',').each do |filepath|
@browser.file_field(:id => id_name).set(filepath)
@browser.div(:id =>"progressBar").wait_while_present
end
上传文件时出现错误Net :: RunTimeout。我试图等到文件上传后执行我的下一个命令,但不知何故我收到超时错误。
我附上了html标签:
<div id="progressBar" class="no_margin ui-progressbar ui-widget ui-widget-content ui-corner-all" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="33"></div>
答案 0 :(得分:1)
默认情况下,行:
@browser.div(:id =>"progressBar").wait_while_present
只会等待60秒。我猜你的问题就在这里 - 也就是说这需要超过60秒。
Element#wait_while_present方法可以使用可选参数来指定以秒为单位的等待时间。您可以尝试进行更大的超时,例如3分钟:
@browser.div(:id =>"progressBar").wait_while_present(180)
答案 1 :(得分:0)
场景1 :
您可以尝试手动上传该特定文件,并查看您的给定超时时间是否足够:
wait_while_present(seconds)
场景2 :
观察运行脚本,观察文件上传时发生的情况,文件是否在给定的秒内正确上传,上传进度条消失了吗?如果尝试更改除div(:id =&gt;&#34; progressBar&#34;)之外的元素位置,请执行以下操作:
@browser.div(:id =>"progressBar").wait_while_present(seconds)