我们有一个这样的表单,其中包含许多元素,唯一的唯一标识符是name属性,该属性始终是company.something表单。
<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属性中包含点或句号的元素,而无需重写前端?谢谢。
答案 0 :(得分:1)
因为这是在属性选择器中,所以您无需满足两次转义的要求,因为引用属性值是不太容易出错的解决方案:
await page_c.click('input[name="company.name"]')
await page_c.type('input[name="company.name"]', client.companyName)
答案 1 :(得分:0)
搜索错误消息后,我发现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)