需要帮助从 HP UFT 的下拉列表中选择项目

Need help selecting an item from a dropdown list in HP UFT

我需要一些帮助来从下拉列表中选择一个值。下拉列表是一个 WebElement,流程在应该选择值的点之前运行良好。

我的代码如下:

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

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

当 运行 代码时,我得到一个未指定的错误。

奇怪的是,在抛出错误之前,我可以在浏览器中看到从列表中选择的值,因为选择它时,表单中的某些字段会发生变化。此外,如果我在错误消息面板中按 "Skip",该过程将继续进行,就好像什么都没发生一样。

我确定错误来自 .WebList("ListOfItems").Select(itemToSelect),但我不知道如何修复它。

试试这个 code.It 适合我。

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

如果有帮助,请告诉我。

如果测试运行正确,而您只是遇到了一个多余的错误,您可以忽略这个特定的错误。当然,最好了解错误的来源,您可能应该联系 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

顺便说一句,我稍微更改了您的代码以使其有效,我认为这就是您的代码的真实样子。

可能的时间问题:您可能需要等待孔列表出现,然后再 select 项目。

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

每当您在应用程序未空闲时使用 UFT 访问 GUI(f.e。未准备好用户输入,因为它仍在更新其 HTML),您可能会遇到各种奇怪的问题结果,包括意外错误、挂起、不稳定。

那么您如何等待列表完成?我不知道,因为这在很大程度上取决于您的应用程序刷新其 GUI 的方式。您需要探索它,并集成一些等待满足正确条件的同步代码。 不幸的是,有时这是一项非常糟糕的工作。

一个合适的解决方法(也是验证我的假设是否正确的好方法)可能是在第一次点击和列表项点击之间插入一个较长的延迟 select离子点击。 (做类似事情的一种快速方法是单步执行代码。)如果这不会产生任何错误或问题,您可以非常确定它就是我所描述的,并且您可以尝试使用较低的延迟持续时间来找到物有所值。

感谢大家的回复。 问题原来是由于对象没有很好地添加到存储库中。 最终通过正确添加它来修复它。