2013-04-10 62 views
0

在我的申請中,如果我必須選擇一個大學的名字,我只需要輸入前三個字母(不會少於這個字母),它會生成一個大學列表。現在問題有時需要很長時間才能生成列表,有時它根本不會生成列表,並且測試失敗並出現TimeOutException錯誤。爲了解決這個問題,我把它放在try-catch塊中,在catch中我清理並重新輸入這個letter在這個univ框中。但是,這會使代碼變得非常醜陋/笨重,並且不能確保將內部抓到不會失敗。 所以我想循環它直到成功,它會繼續清理並輸入大學信件,直到它填充列表。爲什麼我想這樣做,因爲它實時工作,手動(沒有WebDriver /自動化)?這是正確的方法,如果否,那麼如何解決這個問題。如果是的話,如何使它成爲可能? 我認爲它可以工作是這樣的:如何處理自填充列表的超時異常?

#1 while (particular univ name is not visible) 
#2 .clear 
#3 .sendkeys first 3 letters 
#4 wait till elelment is visble >> select >> pass 
#5 if not visible >> repeat 2 & 3 

我用java寫我的ubuntu上的腳本。

回答

0

建議需要等待一段時間。分開您的.sendkeys與之間的睡眠。所以這個列表可以被正確地累積。 .sendkeys 睡眠 的SendKeys 睡眠 的SendKeys

+0

這是沒有什麼不同,但把這麼多try-catch塊,我想迭代它,直到我成功。 – user2172723 2013-04-10 16:57:13

+0

萬一你想做循環,只需設置try catch直到「condition」.isVisible == true。對於睡眠方法,你可以嘗試用一種方法(無效)捕捉它,並儘可能多地使用它... – buddy 2013-04-11 07:17:02

+0

謝謝大家。我認爲這種方法是不正確的,在這裏討論我會得到更好的想法。但我重複,直到成功。 – user2172723 2013-04-11 07:38:10

1

我不認爲這是一個正確的做法。這是你的應用程序中的一個錯誤。

如果輸入的數據不正確,並且沒有匹配的列表,那麼是唯一一種您應該預期結果不應返回的情況。在這種情況下,您的驗證是:不會返回結果,您可以自動執行結果。

如果您有有效的數據並且結果沒有被返回,那麼我會將其作爲應用程序錯誤並與開發人員交談。在這種情況下,你不應該理想地嘗試處理代碼,因爲它隱藏了一個bug。

+0

嗯..,你是對的,但我不能報告它,因爲它是不可複製的,它發生在間歇性的基礎上。有時候沒有清單,有時它會很快。所以如果我想迭代它,直到我取得成功,我該怎麼做(但與dev的討論是確定的事情) – user2172723 2013-04-10 16:56:25