如何通过httpUnit将文本输入到输入中

时间:2013-04-14 05:29:16

标签: java jsp junit http-unit

我有一个类使用httpUnit来测试一个用例,该用例涉及将文本输入到文本框中,即使它没有包装在表单标记中。如果没有要查看的内容,我该如何发送文本或设置值? GetElementWithId不允许您执行其中任何一项操作。除了编写测试之外,我还可以对我想要的代码进行任何更改。

以下是用于呈现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>

1 个答案:

答案 0 :(得分:1)

以下是我用来使其工作的黑客......

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

我正在改变的形式是隐藏的,因此不是真正的“用户”会做什么,但它让我的测试通过。如果有人知道如何以更好的方式做到这一点,我真的很想知道。