需要帮助,可以从HP UFT的下拉列表中选择一个项目

时间:2019-01-07 20:23:42

标签: hp-uft

从下拉列表中选择值时,我需要一些帮助。下拉列表是一个WebElement,该流程可以很好地工作到应该选择该值的位置。

我的代码如下:

.Browser("Browser").Page("PageName").WebElement("DropDownList").Click
.WebList("ListOfItems").Select(itemToSelect)

注意:itemToSelect是需要从列表中选择的项目的名称,该名称在函数中作为参数传递。

运行代码时,出现未指定的错误。

奇怪的是,在引发错误之前,我可以看到从浏览器的列表中选择了该值,因为选择该值后,表单中的某些字段发生了变化。另外,如果我在错误消息面板中按“跳过”,则该过程将继续进行,好像什么也没发生。

我确定错误来自.WebList("ListOfItems").Select(itemToSelect),但我不知道该如何解决。

4 个答案:

答案 0 :(得分:0)

尝试此代码。它对我有用。

StrAllItems = Split(Browser("name:=.*").Page("title:=.*").WebList("name:=.*").GetRoProperty("all items"),";")

For intCounter = Lbound(strAllItems) to Ubound(strAllItems)-1


   If Browser("name:=.*").Page("title:=.*").WebList("name:=.*").GetItem(intCounter)= "SomeValue" Then
            Browser("name:=.*").Page("title:=.*").WebList("name:=.*").Select (intCounter)
            Exit For

   End If

Next

请让我知道是否有帮助。

答案 1 :(得分:0)

如果测试行为正确且您只是收到多余的错误,则可以忽略此特定错误。最好当然是要了解错误的来源,您应该联系MicroFocus支持,但与此同时,您可以关闭违规行的错误处理。

Browser("Browser").Page("PageName").WebElement("DropDownList").Click

On Error Resume Next ' turn off error handling
Browser("Browser").Page("PageName").WebList("ListOfItems").Select(itemToSelect)
On Error Goto 0 ' turn error handling back on

顺便说一句,我稍微修改了您的代码以使其有效,我认为这就是您的代码的真正外观。

答案 2 :(得分:0)

可能的计时问题:选择项之前,您可能需要等待孔列表出现。

通常,该项目存在,但应用程序仍在更新其GUI。

每当您在应用程序不处于空闲状态(因为它仍在更新HTML时,尚未准备好供用户输入)时使用UFT访问GUI时,您可能会得到各种奇怪的结果,包括意外错误,挂起,不稳定。 / p>

那么您如何等待列表完成?我不知道,因为它在很大程度上取决于您的应用刷新其GUI的方式。您需要对此进行探索,并集成一些同步代码,以等待满足正确的条件。 不幸的是,有时候这真是一件难事。

一种合适的解决方法(也是一种验证我的假设是否正确的好方法)可能是在第一次单击和列表项选择单击之间插入较大的延迟。 (执行类似操作的快速方法是单步执行代码。)如果这不会产生任何错误或问题,则可以确定它是我所描述的,并且可以尝试使用较短的延迟时间来查找物有所值。

答案 3 :(得分:0)

感谢大家的答复。 事实证明,该问题是由于对象没有很好地添加到存储库中。 最终通过正确添加来解决此问题。