2014-04-08 74 views
0

我想上傳一個文件到我們的控制檯工作正常,但相同的代碼更大的文件會引發超時錯誤。當我上傳文件時,我斷言進度條存在,表示文件仍在上傳。無法上傳合理大小的文件在紅寶石watir

下面是代碼,上傳文件:

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> 

回答

1

默認情況下,該行:

@browser.div(:id =>"progressBar").wait_while_present 

僅會等待60秒。我猜你的問題在這裏 - 即這是超過60秒。

Element#wait_while_present方法可以採用可選參數來指定以秒爲單位等待的時間。你可以嘗試把在一個較大的超時,例如3分鐘:

@browser.div(:id =>"progressBar").wait_while_present(180) 
+0

我嘗試使用wait_while_present(秒),但我仍然得到的Net :: ReadTimeout錯誤。 – user3486694

+0

如果您更新問題以提供您看到的完整例外以及正在發生的行,它將會有所幫助。 –

+0

我編輯了我的問題。我只看到我提到的錯誤,我也添加了html標籤。 – user3486694

0

方案1

您可以嘗試手動上傳特定的文件,看看你給定超時秒鐘足以在:

wait_while_present(seconds) 

方案2

觀察運行您腳本,並觀察上傳文件時發生了什麼,在給定的秒數內文件是否正常上傳,上傳進度條消失了?如果嘗試改變你的元素的位置比其他的div(:ID => 「進度條」)在:

@browser.div(:id =>"progressBar").wait_while_present(seconds)