2016-06-15 3 views
2

У меня время от времени нажимается на определенную строку в веб-таблице. Мой код определяет правильную строку, но когда я использую метод Child Item, он жалуется, что объект не найден. Вот мой код:Нажатие на определенную строку в WebTable с использованием UFT/QTP

Desc = "Record to click" 

If Browser("B").Page("P").WebTable("W").exist(10) Then 

    totalRows = Browser("B").Page("P").WebTable("W").RowCount() 
    For RowNum = 1 To totalRows 
     If aDesc = Browser("B").Page("P").WebTable("W").GetCellData(RowNum,2) Then 
      Browser("B").Page("P").WebTable("W").ChildItem(RowNum,2,"WebElement",0).click 
     End If 
    Next 
End If 

я подсмотрел значение в строке это веб-элемент, я пытался использовать ссылка- не работал. Также я пытался Child Item(aDesc,2,"WebElement",0) - тоже не работал. Я использовал 0 для индекса, потому что в строке есть только один элемент - простой текст. Я продолжаю получать эту ошибку во многих других тестах. В редких случаях этот подход работает в некоторых тестах, но большую часть времени он жалуется на отсутствие объекта.
Большое вам спасибо за помощь!

ответ

3

Это случилось со мной. Когда я исследовал, в некоторых старых блогах HP я обнаружил, что метод ChildItem не работает корректно с WEBElement, но это было для QTP 9.0, и я использовал 12.02.Anyhow, я не могу понять, почему это произошло, и закончилось с использованием следующего -

Set oExcptnDetail = Description.Create 
oExcptnDetail("micclass").value = "WebElement" 
oExcptnDetail("html tag").value = "TD" 
Set chobj=Browser("").Page("").WebTable("Code").ChildObjects(oExcptnDetail) 
chobj(0).Click 

на стороне записки, для того, чтобы проверить webelement/ссылку существует в определенной строке и столбце, используйте следующее.

Browser("B").Page("P").WebTable("W").ChildItemCount(2,2,"WebElement") 

данные GetCell вернет вам все, что находится в нужной строке и столбце, независимо от того, что он (ссылка, webelement и т.д.) и, следовательно, ваше предположение, если цикл будет идти не так.

+0

Причина этого заключается в том, что 'ChildItem' должен возвращать _children_ ячейки, но не сама ячейка. – Motti

0

Попробуйте это:

браузера ("B") Page ("Р") WebTable ("W") object.rows (ROWNUM-1) .cells (colnum-1) .Нажмите

...
+0

Спасибо, Харман, ваш код с использованием ChildObjects сработал. Но теперь у меня другая проблема. У меня есть веб-таблица на экране, и мне нужно проверить значения в таблице, визуально я вижу, что есть 10 столбцов и 5 строк, но когда я заглядываю в таблицу, параметр cols (для столбцов) имеет значение 1. Я не могу понять почему эта таблица имеет 1 столбец, когда есть 10 столбцов. –

+0

Посмотрите, что вам дает ---> Colcount = Browser («B»). Страница («P»). WebTable («W»). ColumnCount ---- --------- msgbox Colcount, если он возвращает 10, вы можете использовать Getcelldata для получения элементов определенной строки и столбца независимо от того, какой объект шпион покажет вам! – Harman

Смежные вопросы