0

我正在使用 WatiN 测试浏览器应用程序。

当我按下按钮时,浏览器中会添加一个新表格 - 它如下所示:

<table border="0">
    <tr>
        <td>
            <a></a>
            <a></a>
            <a></a>
            <!-- ... -->
            <a></a>
        </td>
        <td>
            <a></a>
            <a></a>
            <a></a>
            <!-- More anchors -->
            <a></a>
        </td>
        <!-- More TDs -->
        <td>
            <a></a>
            <a></a>
            <a></a>
            <a></a>
        </td>
    </tr>
</table>

我需要单击某个单元格中的某个锚点。为此,我实现了以下功能:

static void pressTableCell(IE browser,  string key1, string key2,int indeX,int indeY)
{
    Table tbl = browser.Table(Find.By(key1,key2));
    TableCell row = tbl.TableCells[indeY];
    int counter = 1;
    foreach (var Link in row.Elements) // I know it's weird to run with foreach and counter, but this is just for testing purposes, nobody will ever see this code except me, so i'm doing evil stuff. :)
    {
        if (counter == indeX)
        {
            Link.Click();
            return;
        }
        counter++;
    }
}

我得到了一个例外 - 没有“border”属性设置为“0”的表格。

我仔细检查了名称和所有内容。

函数调用:

static void MakeItGlobal(IE browser)
{
    ...
    //Press the button that creates the table - works. I'm certain.
    pressTableCell(browser, "border", "0", 1, 2, 2);
    ...
}

我的问题是 - 为什么我会得到例外?WatiN 不知道如何处理动态表吗?

4

0 回答 0