如何按名称中有空格的表列进行搜索?

时间:2019-06-27 07:31:00

标签: c# atata

我正在构建一个测试,该测试应该搜索一个表并根据列名找到一个对象。问题是,列名中有一个空格,例如:“ Friendly name”

我只是想知道如何获取atata框架来找到它。像[Term("Friendly name")]这样的自定义搜索参数在表对象中不起作用。

我也尝试过使用[Term(TermCase.Sentence)],它可以编译,但也不能用于表。我对atata不太熟悉,尚不知道如何使其正常工作。编译器为“无法找到可见列”。

这是测试代码行:

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]

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

{
    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").

1 个答案:

答案 0 :(得分:0)

如果属性名为[Term("Friendly name")],则

[Term(TermCase.Sentence)]FriendlyName是等效的。我会尝试使用[Term(TermMatch.Contains, TermCase.Sentence)]。如果可行,则意味着在列标题(th)的开头或结尾处还有多余的字符。

无论如何,如果您共享表的HTML代码和页面对象代码的一部分,对解决您的问题将非常有帮助。