我试图使用MTM测试应用程序。内置的记录和回放机制无法处理这个应用程序的构建方式,所以我试图构建一个解决方法。访问网格的单元格中的WinCheckBox,给出对该行中第一个单元格的引用
我有一个网格,一个类似于以下
|[]|[ Fruit ]|[ Read ]|[ Write ]|[ Execute ]|
| | apple | [ ] | [ ] | [ ] |
| | banana | [ ] | [ ] | [ ] |
| | coconut | [ ] | [ ] | [ ] |
在十字路口的细胞复选框。当我学习Banana行的Read列的复选框时,它可以工作。当我尝试学习Write列的复选框时,它认为它已经知道它,但它确实是Read列的复选框。它只是将其学习为“UIUncheckedCell”,因此只能识别行中的第一个复选框。这就是我正在尝试解决的问题,最好是除了表之外,在GUI映射中没有任何东西。有趣的是,如果我在尝试学习复选框之前先关注单元格,它会以不同的方式记录它。这让我有点怀疑。
我已经有了一个函数,可以在表格和水果名称中传递,它将在表格/网格中搜索第一列中具有该水果的行。到现在为止还挺好。
public WinCell FindCellInTable(WinTable table, int colIndex, string value)
我想要的是一个函数,我可以给一个列名称,它在表中搜索该列,并返回一个列号。 (听起来很容易不够)
public int FindColumnOfHeader(WinTable table, String columnName)
然后,另一个函数,我给它的单元参考与在它的果实的细胞,并将其从细胞导航到列,然后从行到细胞列表,然后使用该索引找到相应列的Cell,最后将我传回的WinCheckBox对象,可用于检查或取消选中该单元格。
public WinCheckBox GetCheckboxFor(WinCell cell, int colIndex)
{
// I think this is the way to get there - it compiles at least!
WinRow row = new WinRow(cell.GetParent());
UITestControlCollection cells = row.Cells;
UITestControl targetCell = cells[colIndex];
// But then what do I do?
// I tried this, but it didn't work
// (compiles but does not work for setting the checkbox):
WinCheckBox cb = new WinCheckBox(targetCell);
return cb;
}
我无法弄清楚如何从单元格引用去的复选框的单元内,或者即使在小区的复选框,或者如果它只是看起来像一个复选框,或者是什么。
在此先感谢您分享您的专业知识!