【问题标题】:page.click use value attribute as selector?page.click 使用值属性作为选择器?
【发布时间】:2018-05-19 15:24:24
【问题描述】:

问题:

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

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) 似乎可行,但我不确定如何编写表达式。

非常感谢任何帮助!

【问题讨论】:

    标签: node.js puppeteer


    【解决方案1】:

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

    是的,而且您的初始选择器中已经有很多这样的选择,我说的是input[type=submit]。除了type,还可以使用元素的任何其他属性,包括value

    await page.click('input[value="Accept"]');
    await page.click('input[name="submit"]');
    

    您甚至可以省略元素类型并仅通过其属性搜索:'[value="Accept"]',但请记住,这种方法可能会找到多个结果,并且 only the first of them will be clicked(很可能不是您想的那个) ,所以首先在真实浏览器的控制台中测试选择器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 2014-03-28
      相关资源
      最近更新 更多