如何按名称中包含空格的 table 列进行搜索?

How to search by table column that has spaces in the name?

我正在构建一个应该搜索 table 并根据列名查找对象的测试。问题是,列名中有一个 space,例如:"Friendly name"

我只是想知道如何让 atata 框架找到它。 [Term("Friendly name")] 等自定义搜索参数在 table 对象中不起作用。

我也尝试过使用 [Term(TermCase.Sentence)],它确实可以编译,但也不适用于 table。我对 atata 不是很熟悉,还不知道如何让它正常工作。编译器是 "Unable to locate visible column".

这是测试代码行:

pageObject.Table.Rows.Count.Get(out count).
    Table.Rows[x => x.Friendly name == "OBJECTNAME"].Click().

任何建议都会很有帮助。

<thead class="MuiTableHead-root-325">
<tr class="MuiTableRow-root-326 MuiTableRow-head-329">
<th class="MuiTableCell-root-331 MuiTableCell-head-332" scope="col">Column name</th>
<th class="MuiTableCell-root-331 MuiTableCell-head-332" scope="col">Column name2</th>
</tr>
</thead>
<tbody>
<tr class="MuiTableRow-root-326">
<td class="MuiTableCell-root-331 MuiTableCell-body-333">TESTCELL</td>
<td class="MuiTableCell-root-331 MuiTableCell-body-333">TESTCELL2</td>
</tr>
</tbody>

Xpath 示例:div[@id="root"]/div[2]/main/div[2]/div/div/table/tbody/tr[12]/td[1]

如您所见,我可以使用的元素不多。这些 table 是动态生成的,因此可以移动或删除信息,但出于测试目的,这不是什么大问题。

{
    using _ = Example;

    public class Example : Page<_>
    {
        public Table<ExampleTableRow, _> Table { get; private set; }

        public class ExampleTableRow : TableRow<_>
        {
            [Term(TermCase.Sentence)]
            public Text<_> ColumnName { get; private set; }
            public Clickable<_> Edit { get; private set; }
        } 
        [FindByXPath("div[@id='root']/div[2]/path/input")]
        public TextInput<_> RenameTest { get; private set; }
    }
}

and the class..

int count;
            Go.To<ExampleTable>().
            Table.Rows.Count.Get(out count).
            Table.Rows[x => x.ColumnName == "Friendly name"].Edit.Click().
            RenameTest.Set("Reanametest").
如果 属性 被命名为 FriendlyName

[Term("Friendly name")][Term(TermCase.Sentence)] 是等价的。我会尝试使用 [Term(TermMatch.Contains, TermCase.Sentence)]。如果有效,则意味着列 header (th).

的开头或结尾有多余的字符

无论如何,如果您分享 table 的 HTML 代码和页面 object 代码的一部分,将对解决您的问题很有帮助。