【问题标题】:How to enter text into input via httpUnit如何通过 httpUnit 将文本输入到输入中
【发布时间】:2013-04-14 05:29:15
【问题描述】:

我有一个类分配来测试使用 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>

【问题讨论】:

  • 我可以看到,每次有人在 searchBox 中键入文本时,您都在调用该 keyup 侦听器,但我仍然不明白您要做什么?
  • curPage.getFormWithName("???").setParameter("searchBox", "1");
  • 我想做这样的事情,以便 MID 1 的用户出现。我遇到的问题是我没有或不知道这里的表单名称。
  • 我可以将我的输入包装在
    中以便我有一个可以抓取的表单吗?
  • 通过调用隐藏表单使其工作。如果您只想设置这样的值,那么这是一种 hack,它违背了 UI 用户测试的目的,但它确实有效。 WebForm 表单 = curPage.getForms()[0]; form.getScriptableObject().setParameterValue("UID_PATIENTID", "1");按钮 btn = form.getButtons()[1]; btn.click(); curPage = wc.getCurrentPage();

标签: java jsp junit http-unit


【解决方案1】:

这是我用来让它工作的技巧......

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

我正在更改的表单是隐藏的,因此不是真正的“用户”会做什么,但它可以让我的测试通过。如果有人知道我怎样才能更好地做到这一点,我真的很想知道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2012-05-25
    相关资源
    最近更新 更多