2013-04-14 56 views
1

我有一個使用httpUnit進行測試的類分配,該用例涉及將文本輸入到文本框中,即使它未包裝在表單標記中。如果沒有表格來查看內容,我該如何發送文本或設置值? GetElementWithId不允許你執行其中的任何一個。除了編寫測試之外,我可以對所需的代碼進行任何更改。如何通過httpUnit輸入文本到輸入

這裏是用來渲染HTML JSP代碼:

<script type="text/javascript"> 
$(function(){ 

    $("#searchBox").keyup(function(){ 
     $("#userSearch").attr("src","patientSearch.jsp?forward=<%=StringEscapeUtils.escapeHtml("" + (request.getParameter("forward")))%>&q="+$("#searchBox").val()+"&allowDeactivated="+$("#allowDeactivated:checked").val()) 
    }); 
    $("#oldSearch").hide(); 

}); 
</script> 
<h2> Select a Patient</h2> 
<b>Search by name or MID:</b><br/> 
<div style="border: 1px solid Gray; padding:5px;float:left;"> 
    <input id="searchBox" name="searchBox" style="width: 250px;" type="text" value="<%= StringEscapeUtils.escapeHtml("" + (firstName)) %>" /> 
    <br /> 
    <input id="allowDeactivated" type="checkbox" /> 
    Show deactivated patients 
</div> 
+0

我可以看到,你每次有人在'searchBox'中輸入文本時都會調用這個鍵控監聽器,但是我仍然沒有得到你想要做的事情? – 1337holiday

+0

curPage.getFormWithName(「???」)。setParameter(「searchBox」,「1」); –

+0

我想要做這樣的事情,以便帶有MID 1的用戶出現。我遇到的問題是我沒有或知道這裏的表單名稱。 –

回答

1

這裏是我曾經得到它的工作黑客...

WebForm form = curPage.getForms()[0]; 
form.getScriptableObject().setParameterValue("UID_PATIENTID", "1"); 
Button btn = form.getButtons()[1]; 
btn.click(); 
curPage = wc.getCurrentPage(); 

我改變了形式是因此隱藏的不是真正的「用戶」會做什麼,而是讓我的測試通過。如果有人知道如何以更好的方式做到這一點,我真的很想知道。