我正在使用 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 不知道如何处理动态表吗?