剧作家选择带有 text= 或具有完全匹配的 hastext 的元素
Playwright selecting element with text= or hastext with exact match
我用的是剧作家nodejs。我给自己写了一些动态 select 或 select 数据表页码按钮的函数。
pageNumberButton(page, table_id, page_number) {
page.locator(`[aria-controls=${table_id}]`, {hasText: page_number});
}
我也试过:
pageNumberButton(page, table_id, page_number) {
page.locator(`[aria-controls=${table_id}] text=${page_number}`);
}
但是,我似乎无法使其完全匹配。
假设我的数据表有 13 页:
我想点击第 1 页。所以我发出以下命令:await pageNumberButton(page, "resultsTable", "1").click();
但是我得到了一个严格模式错误,因为有两个结果:1 和 13。
最好或好的方法是什么来创建这个小 select 或动态创建按钮以便我可以对按钮进行精确匹配?
我找到了一个选项。创建一个正则表达式对象并将其传递给 hasText。
pageNumberButton(page, table_id, page_number) {
const regexNumber = new RegExp(`^${page_number}$`);
page.locator(`[aria-controls=${table_id}]`, {hasText: regexNumber});
}`
我用的是剧作家nodejs。我给自己写了一些动态 select 或 select 数据表页码按钮的函数。
pageNumberButton(page, table_id, page_number) {
page.locator(`[aria-controls=${table_id}]`, {hasText: page_number});
}
我也试过:
pageNumberButton(page, table_id, page_number) {
page.locator(`[aria-controls=${table_id}] text=${page_number}`);
}
但是,我似乎无法使其完全匹配。
假设我的数据表有 13 页:
我想点击第 1 页。所以我发出以下命令:await pageNumberButton(page, "resultsTable", "1").click();
但是我得到了一个严格模式错误,因为有两个结果:1 和 13。
最好或好的方法是什么来创建这个小 select 或动态创建按钮以便我可以对按钮进行精确匹配?
我找到了一个选项。创建一个正则表达式对象并将其传递给 hasText。
pageNumberButton(page, table_id, page_number) {
const regexNumber = new RegExp(`^${page_number}$`);
page.locator(`[aria-controls=${table_id}]`, {hasText: regexNumber});
}`