如何按名称中包含空格的 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 代码的一部分,将对解决您的问题很有帮助。
我正在构建一个应该搜索 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 代码的一部分,将对解决您的问题很有帮助。