我试图检查一下td。我使用以下方法将物体拉出dom:
string tdSelector = "#myTD";
TableCell td = ie.Element(Find.BySelector(tdSelector)) as TableCell;
由于强制转换,返回null。所以下面的代码
Element elm = ie.Element(Find.BySelector(tdSelector));
工作正常。
更多elm.TagName返回" TD"
TableCell td = (TableCell)ie.Element(Find.BySelector(tdSelector));
抛出错误:无法转换类型为' WatiN.Core.ElementContainer`1 [WatiN.Core.Element]'输入' WatiN.Core.TableCell'。
所以对象在那里,我可以实现它,但我不能把它当作TableCell对象。我看到有一种方法。作为<>所以我试过.As< TableCell>()也不起作用。
有什么想法吗?我的目标是获得一个TableCell对象。
答案 0 :(得分:3)
我对此也很好奇,我终于找到了办法。您无法将Element
投射到特定于HTML标记的类,但是您可以创建一个全新的TableCell
并使用Element
来构建它。
Element element = ie.Element("someId");
TableCell cell = new TableCell(element.DomContainer, element.NativeElement);
如果Element
表格单元格,则不会引发异常。
答案 1 :(得分:0)
据我所知,如果没有真正破坏框架,这是不可能的。开箱即用它不是为了做到这一点(据我所知)。理想情况下,获取您想要的对象,而不是尝试投射它。
ie.TableCell(Find.BySelector(tdSelector))
答案 2 :(得分:0)
您可以通过以下方式获取表格的所有表格单元格:
foreach (TableRow tr in details.TableRows)
{
TableCellCollection tcs = tr.TableCells;
for (int b = 0; b < tcs.Count; b++)
{
// each cell for each row and search whatever you need in here.
}
}
希望这有帮助。