剧作家选择带有 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});
}`