代码之家  ›  专栏  ›  技术社区  ›  RusHughes

使用Puppeteer选择名称中带有点或句号的节点

  •  0
  • RusHughes  · 技术社区  · 6 年前

    <input class="form-control" type="text" name="company.name" value="">
    

    以下两次选择此文本输入的尝试均失败

    await page_c.click('input[name=company.name]')
    await page_c.type('input[name=company.name]', client.companyName)
    
    await page_c.click('input[name=company\.name]')
    await page_c.type('input[name=company\.name]', client.companyName)
    

    Evaluation failed: DOMException: Failed to execute 'querySelector' on 'Document': 'input[name=company.name]' is not a valid selector.
    

    有没有一种方法可以在不重写前端的情况下处理name属性中有一个点或句号的元素?谢谢。

    2 回复  |  直到 6 年前
        1
  •  1
  •   BoltClock    6 年前

    由于这是在属性选择器中,您不需要满足于双重转义引用属性值是不太容易出错的解决方案:

    await page_c.click('input[name="company.name"]')
    await page_c.type('input[name="company.name"]', client.companyName)
    
        2
  •  1
  •   RusHughes    6 年前

    在搜索了我发现的错误消息之后 Cannot use query selector with id's that includes "."

    await page_c.click('input[name=company\\.name]')
    await page_c.type('input[name=company\\.name]', client.companyName)