page.click使用value属性作为选择器?

时间:2018-05-19 02:26:57

标签: 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" type="submit" value="Accept">

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

根据我的研究,看起来page.$x(expression)会起作用,但我不确定如何编写表达式。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

  

是否可以使用page.click根据“value”属性单击元素?

确实如此,您在初始选择器中已经有各种各样的内容,我在谈论class Cache { static final Cache STORE = new Cache(); class Index { public byte[] getFile(String archiveId) {} public String getArchiveId(String id) {} } public Index[] getIndexes() {} } 。可以有元素的任何其他属性,而不是input[type=submit],而不是type

value

您甚至可以省略元素类型并仅按其属性进行搜索:await page.click('input[value="Accept"]'); await page.click('input[name="submit"]'); ,但请记住,此方法可能会找到多个结果,only the first of them will be clicked(很可能不是您的那个)记住了),首先在真正的浏览器控制台中测试选择器。