Node.js page.click是否将值属性用作选择器?

Node.js page.click是否将值属性用作选择器?,node.js,puppeteer,Node.js,Puppeteer,问题: 由于各种原因,选择器可能会随机更改,因此,使用选择器并不能保证始终成功。这是我使用选择器的代码 await page.click('body > div.api-container > div > div.clearAll > form > input[type="submit"]:nth-child(3)'); 是否可以改为使用page.click来单击基于“value”属性的元素?以下是HTML: <input name="submit" typ

问题:

由于各种原因,选择器可能会随机更改,因此,使用选择器并不能保证始终成功。这是我使用选择器的代码

await page.click('body > div.api-container > div > div.clearAll > form > input[type="submit"]:nth-child(3)');
是否可以改为使用page.click来单击基于“value”属性的元素?以下是HTML:

<input name="submit" type="submit" value="Accept">

正如您所看到的,该值将始终等于“Accept”,搜索页面并单击匹配元素将更容易

根据我的研究,它看起来像
页面。$x(表达式)
可以工作,但我不确定如何编写表达式

非常感谢您的帮助

是否可以改用page.click来单击基于“value”属性的元素

是的,在您的初始选择器中已经有各种各样的选项,我说的是
input[type=submit]
。除了
类型
之外,元素还可以有任何其他属性,包括

await page.click('input[value="Accept"]');
await page.click('input[name="submit"]');
您甚至可以省略元素的类型并仅通过其属性进行搜索:
“[value=“Accept”]”
,但请记住,这种方法可能会找到多个结果,并且(很可能不是您所想到的结果),所以请先在真正的浏览器控制台中测试选择器