2010-07-21 4 views
0

[Описание немного уклонился, чтобы запутать свою реальную работу по соображениям конфиденциальности]QTP сужает список ChildObjects

Я работаю на тест QTP для веба-страницы, где есть несколько HTML-таблица элементов. Доступные элементы имеют интерактивный элемент #, а те, которые неактивны, имеют элемент # как обычный текст.

Так что, если у меня есть набор ChildObjects вроде этого:

//This is the set of table rows that contain item numbers, active or not. 
objItemRows = Browser("browserX").Page("pageY").ChildObjects("class:=ItemRow") 

Что это самый простой способ в QTP земле, чтобы выбрать только интерактивную ссылку-роскопию #s записи?

ОБНОВЛЕНИЕ: Дело здесь не в выборе самих строк, а в том, чтобы выбирать только строки, в которых есть элементы (в отличие от строк заголовка/нижнего колонтитула в каждой таблице). Если я это правильно понял, я мог бы использовать objItemRows.Count для подсчета количества элементов (доступных и недоступных). Могу ли я затем использовать что-то вроде

desItemLink = Description.Create 
    desItemLink("micclass").value = "Link" 
objItemLinks = objItemRows.ChildObjects(desItemLink) 

Чтобы получить ссылки только в строках элементов?

Надеюсь, что это прояснит ситуацию и спасибо за помощь.

+0

Я не уверен, что я следую тому, что вы имеете в виду, можете ли вы опубликовать HTML-код элемента, доступного для кликов, в отличие от HTML элемента, не имеющего клика? – Motti

+0

1. Представленный фрагмент кода не является исполняемым кодом QTP/VBScript. 2. QTP не автоматически сопоставляет TD или TR теги как объекты GUI. Кроме того, строки и ячейки являются дочерними элементами определенного объекта WebTable, а не страницы. –

ответ

0

Думаю, у меня это выяснено.

Set desItemLink = description.create 
    desItemLink("micclass").value = "Link" 
    desItemLink("text").RegularExpression = True 
//True, Regex isn't really required in this example, but I just wanted to show it could be used this way 
//This next part depends on the format of the item numbers, in my case, it's [0-9]0000[0-9]00[0-9] 

For x = 0 to 9 
    For y = 0 to 9 
    For z = 0 to 9 
     strItemLink = x & "0000" & y & "00" & z 
     desItemLink("text").value = strItemLink 
     Set objItemLink = Browser("browser").Page("page").Link(desItemLink) 
     If objItemLink.Exist(0) Then 
     //Do stuff 
     End If 
    Next 
    Next 
Next 

Спасибо за вашу помощь в любом случае, но приведенный выше код будет перебирать ссылки с именами в данном увеличивающемся формате.