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

问题描述 投票:1回答:4

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

我的代码如下:

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

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

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

奇怪的是,在抛出错误之前,我可以看到从浏览器列表中选择的值,因为在选择它时,表单中的某些字段会发生变化。此外,如果我在错误消息面板中按“跳过”,则该过程继续进行,就像没有发生任何事情一样。

我确定错误来自.WebList("ListOfItems").Select(itemToSelect)但我不知道该怎么做才能解决它。

hp-uft
4个回答
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

如果有这个帮助,请告诉我。


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

顺便说一句,我改变了你的代码以使其有效,我认为这是你的代码真正的样子。


0
投票

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

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

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

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.