2010-07-21 17 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土地只選擇可點擊的鏈接化的項目#秒的最簡單的方法?

UPDATE:這裏的重點不是選擇行本身,而是僅選擇其中包含項目的行(而不是每個表中的頁眉/頁腳行)。如果我正確理解這一點,那麼我可以使用objItemRows.Count來統計有多少項(可用和不可用)。然後我可以使用類似

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

要獲得僅在項目行內的鏈接?

希望澄清事情,並感謝您的幫助。

+0

我不確定我是否遵循你的意思,你可以發佈可點擊的項目的HTML,而不是不可點擊的項目的HTML嗎? – Motti 2010-07-22 06:13:54

+0

1.提供的代碼不是可執行的QTP/VBScript代碼。 2. QTP不會自動將TD或TR標籤映射爲GUI對象。此外,行和單元格是特定WebTable的子元素,而不是Page對象。 – 2010-07-22 13:19:41

回答

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 

感謝您的幫助,但上面的代碼將通過給定遞增格式的名稱進行迭代。