I'm using Silk to test a web application using the IE6 DOM extension. I have a page with the following contents, top to bottom, in the main frame:
Table (not recognized as such) containing in each row an HtmlPopupList and optionally an HtmlTextField or an HtmlRadioList depending on the contents of the HtmlPopupList.

The problem is that I don't know how many of these table rows are going to exist before the page is displayed, because the page queries a DB for instance specific properties. So, I'm using a construct like this in a loop to set each row:

BrowserChild.HtmlPopupList("$foo?" + str(iLoopCount) + "?").DoSomething()

This works great when Silk recognizes the first row in the list as index 0. Unfortunately, I have just run into a place in my app where the recorder specifies the first row in my table as having a WindowID index of -2! ($foo?-2?) The next rows have decrementing indexes (-3, -4, ...).

I'm baffled, since every other page like this in my app has had their table rows be assigend window ID indexes of 0. Can anyone explain to me why I would see such different behavior? I don't want to create a new testcase just for this abberation that starts my loop at -2 and decrements unless I undertand why it has to be that way.