我有一個帶有複雜數據輸入表單的Web應用程序,其中有一些標籤可保存各種配置項的輸入字段。我正在編寫一個測試,在不同選項卡上的字段中輸入數據,然後執行保存。當我輸入每個項目時,我會在進入下一步之前驗證數據輸入控件是否具有我選擇的文本或值。我發現有時(但並非總是),當我移動到另一個選項卡時,以前選項卡上的字段會丟失我輸入的數據。Selenium:有多個標籤的表單中輸入的數據有時會消失
我該如何預防?
我在Web中使用Selenium 2和WebDriver,並使用Firefox運行測試。
我有兩個字段麻煩:
一個是一個簡單的文本輸入字段 二是與自動完成功能
一個文本輸入框兩場是在最後的I輸入數據之前切換標籤。在切換選項卡之前,我沒有其他輸入數據的字段會丟失數據。就在我進入新選項卡之前,我正在與之交互。
我已經試過檢查JQuery是加載在發送文本到輸入字段的方法的結尾,但它似乎沒有幫助。檢查JQuery的方法返回true,並且數據有時仍被擦除。
手動輸入數據時不會發生這種情況,也不會在另一個只在一個選項卡上輸入數據的自動化測試中發生。
下面是自動完成場HTML時已經輸入的文本,並且存在已觸發自動完成沒有掛起的輸入:
<div id="s2id_autogen5" class="select2-container select2-container-multi select2">
<ul class="select2-choices" style="">
<li class="select2-search-choice">
<div>
htm
</div>
<a class="select2-search-choice-close" tabindex="-1" onclick="return false;" href="#"></a>
</li>
<li class="select2-search-field">
<input class="select2-input" type="text" autocomplete="off" tabindex="0" style="width: 10px;"></input>
</li>
</ul>
</div>
下面是簡單的文本輸入字段的HTML源代碼:
<td class="optionValue option_sr_test_object_url">
<input id="option_d03e6450-5990-4a31-8e84-5b1af89d2c47_sr_test_object_url" type="text" placeholder="e.g. /path/testobject.html" value="/path/test.html">
</input>
</td>
這有點奇怪。你的(表單)代碼可能有問題。如果是這樣,那麼測試將實現其目的;) –
手動輸入數據時絕不會發生這種情況。甚至在使用Selenium輸入數據時,如果我在測試過程中不切換製表符。 – Selena
我明白了。有時我有JS錯誤,我只能在調試時檢測到。爲了以防萬一,我會修改表單代碼。另外,另一個想法可能是一些JS名稱重複,可能導致Selenium的腳本與您的表單代碼進行交互。如果可能,請嘗試更改表單中「復位」字段的函數名稱。 –