Node.js 在《木偶戏》中,有没有办法通过按钮的两个属性来找到按钮?

Node.js 在《木偶戏》中,有没有办法通过按钮的两个属性来找到按钮?,node.js,puppeteer,Node.js,Puppeteer,我试图使用Puppeter单击一个按钮,我试图通过它的两个属性找到它,aria descripeby和title,因为它没有ID。 aria describedby属性的值是我设置的名称,但是,最后两个字符是数字,会自动将其变为随机数 我已经搜索了regexp问题、JS问题、木偶演员的代码,但没有找到真正有效的 最接近我的是: //v1 const arr = await page.$x('//button[starts-with("aria-describedby", "someName")]

我试图使用Puppeter单击一个按钮,我试图通过它的两个属性找到它,
aria descripeby
title
,因为它没有ID。 aria describedby属性的值是我设置的名称,但是,最后两个字符是数字,会自动将其变为随机数

我已经搜索了regexp问题、JS问题、木偶演员的代码,但没有找到真正有效的

最接近我的是:

//v1
const arr = await page.$x('//button[starts-with("aria-describedby", "someName")]');
await arr[1].click();

//v2
page.click('button[aria-describedby="someName20"][title="Click button"]');

我尝试了不同的代码,但几乎总是发现选择器的
未定义
未找到节点
我缺少html代码,因此很难找到答案,但每当我有需要两个参数的动态选择器单击时,我都会通过包含文本的方式进行搜索:

let toClick = await page.$x("//button[contains(text(),'someName20')][contains(text(),'Click button')]");

await toClick[0].click();
注意:text()方法仅适用于文本节点(即
someName20

),但您可以交换括号中的第一个或第二个表达式来查询属性值,而不是元素文本值。

您可以尝试css以选择器开头(
^=
):


HTML就是PowerBIWebView的数据集选项卡(不必介意红色矩形)。我想处理actions列下的图像(这些是按钮)。不起作用,它说
字符串'//button[contains(text(),“ControleEAsdatasetMenu”)][contains(text(),“Atuanizar agora”]'不是有效的XPath表达式。
。代码是
,无论如何我都会尝试解决。谢谢!
button[aria-describedby^="someName"][aria-label="Click button"]