#hp-uft
#hp-uft
Вопрос:
Я написал приведенный ниже фрагмент кода, чтобы выбрать строку из веб-таблицы для ее обработки. Код успешно выбирает / открывает первую строку, однако, когда он пытается дважды щелкнуть по второй строке, он выдает ошибку «Неуказанная ошибка». Веб-таблица содержит 7 строк, тем не менее, происходит сбой. Может ли кто-нибудь указать, что может быть причиной сбоя, пожалуйста?
Set objDesc = Description.Create
objDesc("micclass").Value = "WebTable"
objDesc("html tag").Value = "Table"
Set objList = Browser("3 - Employee Assign Benefits").Page("3 - Employee Assign Benefits").Frame("APPFRAMEWORK").ChildObjects(objDesc)
oCount = objList.Count
For k =0 To oCount - 1
colName = objList(k).GetRoproperty("cols")
If Trim(colName) = 21 Then 'This is the right table
objList(k).Highlight
rows= objList(k).GetROProperty("rows")
For i = 1 To rows
x = objList(k).ChildItem(i,1,"WebElement",0).GetROProperty("abs_x")
y = objList(k).ChildItem(i,1,"WebElement",0).GetROProperty("abs_y")
Wait(2)
Set obj = CreateObject("Mercury.DeviceReplay")
obj.MouseDblClick x,y,LEFT_MOUSE_BUTTON
Call ClickVerifyElement(Browser("3 - Employee Assign Benefits").Page("3 - Employee Assign Benefits").Frame("APPFRAMEWORK").WebEdit("ben_elig_dte"), "ben_elig_dte", "WebEdit", Parameter("elig_date"))
Call ClickVerifyElement(Browser("3 - Employee Assign Benefits").Page("3 - Employee Assign Benefits").Frame("APPFRAMEWORK").WebList("emp_state_withd_opt_decode"), "emp_state_withd_opt_decode", "WebList", Parameter("withhold_ind"))
Browser("3 - Employee Assign Benefits").Page("3 - Employee Assign Benefits").Frame("APPFRAMEWORK").WebButton("Save").Click
Next
Exit For
End If
Next
Комментарии:
1. каковы значения
x
иy
в момент сбоя? Вы определилиLEFT_MOUSE_BUTTON
где-нибудь значение, относящееся к левой кнопке мыши? Вы убедились, что в каждой строке естьWebElement
, из которых вы можете получить значенияx
иy
?2. Да, в каждой строке есть веб-элемент. Я жестко закодировал ее, как показано ниже, вместо параметризации значений. В этом случае код открывает указанную строку должным образом без каких-либо проблем. x = objList(k). Дочерний элемент(2,1,»WebElement»,0).GetROProperty(«abs_x») y = objList(k). ChildItem(2,1,»WebElement»,0).GetROProperty(«abs_y») Даже во время параметризации код может выбрать значение во время первой итерации цикла for, и получение не удалось только на последующей итерации.
3. Учитывая, что после двойного щелчка по элементу первой строки вы затем запускаете эту
ClickVerifyElement
функцию, за которой следуетSave
щелчок, я бы сказал, что, вероятно, этоobjList
фактически выходит за рамки после того, как выполняется действие с первой строкой, из-за какого-либо изменения или другого. Приостановите скрипт после первого щелчка и посмотрите, по-прежнему ли коллекция действительна и правильно ли ссылается на ваш список таблиц.