我们有一个ERP网络应用程序,我们在其中使用查找通过键入来显示匹配(来自数据库)。
我正在使用桌面Selenium webdriver应用程序来测试ERP应用程序。如何使用Selenium webdriver自动执行ERP应用程序中的查找?
以下是代码:
<div class="form-group col-sm-12">
<span class="col-sm-3">
<label><spring:message code="label.notify" text="Notify"/></label>
<div id="memberList">
<c:forEach items = "${memberListMap}" var="member">
${member.value}<a id='${member.key}' onclick='deleteMember(this.id)'><img align='absmiddle' style='height:10px;' src='<c:url value='/resources/images/delete.jpg' />' alt='Delete' title='Delete' /></a>
</c:forEach>
</div>
<div id="add_member_link" ><a class="light_blue" onclick="JavaScript:document.getElementById('resourceName').style.display='';document.getElementById('add_member_link').style.display='none';document.getElementById('resourceAjaxLookupDiv').style.display='none';">
<b><img align="absmiddle" style="margin-right:5px;color:#3C78B7;" src='<c:url value="/resources/images/add_icon.png" />'></img>
<spring:message code="label.addusers" text="Add users"/></b></a></div>
<input class="form-control" ng-model="position.resourceName" name="resourceName" id="resourceName" style="width:200px;margin-right:20px;display:none"
onkeyup="return getResourceList('<c:url value="/user/resourceList" />', 'resourceAjaxLookupDiv');" autocomplete="off" />
<input type="hidden" name="resourceId" id="resourceId" />
<div id="resourceAjaxLookupDiv" style="text-align:center;min-height:18px;max-height:100px;width:203px;overflow:auto;
background-color:#ffffff;display:none;border:1px solid #7f9db9;position:absolute;z-index:1000;border-top:0;">
</div>
<input type="hidden" name="member_array" id="member_array" />
</span>
</div>
答案 0 :(得分:0)
自动查找包括两个步骤:
由于两个UI元素都有ID,finding它们应该很简单:
WebElement myElement = driver.findElement(By.id("element id"));
据我所知,您的ID为resourceName
和resourceAjaxLookupDiv
。
由于您的查找似乎是异步AJAX请求(与页面重新加载相反),您当然希望定义显式WebDriverWait以等待列表加载。