按列名识别 table 个单元格

Identify table cells by column name

假设我有以下 table:

|A|B|C|
|1|2|3|
|4|5|6|

要从(第 1 行,第 2 列)修改值(从 2 到 7),我使用了以下行:

mouseClick(waitForObjectItem(":Dummy_JTable", "0/1"))
type(waitForObject(":Dummy_JTable"), "7")

...但是如果要在 SW 中引入新功能,假设在 A 和 [= 之间有一列 D 23=]B,那么上面提到的代码会将 7 放入新列 D.

有没有办法键入与列 names/text 相关的值(table header)?

更新:我在 Python 中使用 Squish 5.1.3。

根据你所说的,我不相信有。您可以做的是编写一个函数,读取所有 table 项,以及 returns 您要查找的项。例如:

children = object.children(":Dummy_JTable")
for counter in range(len(children)):
    cell_value = children[counter].text
    if cell_value == "searched cell value":
        mouseClick(waitForObjectItem(":Dummy_JTable", children[counter]))
        type(waitForObject(":Dummy_JTable"), "7")

"searched cell value" = the value you expect to be in the cell.

我测试的软件也有这个问题,因为我经常遇到GUI变化,我真的必须使用这种功能,即使使用cell/row也容易得多。