Выбор узла с точкой или полной остановкой в ​​имени с помощью Puppeteer - PullRequest
0 голосов
/ 05 октября 2018

У нас есть форма с большим количеством элементов, таких как этот, с единственным уникальным идентификатором, являющимся атрибутом имени, который всегда имеет форму 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.

Есть ли способ обработки элементов, в которых атрибут имени имеет точку или полную остановку, без перезаписипередний конец, пожалуйста?Благодаря.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Поскольку это в селекторе атрибутов, вам не нужно соглашаться на двойное экранирование - цитирование значения атрибута является менее подверженным ошибкам решением:

await page_c.click('input[name="company.name"]')
await page_c.type('input[name="company.name"]', client.companyName)
0 голосов
/ 05 октября 2018

После поиска сообщения об ошибке я обнаружил Невозможно использовать селектор запросов с идентификаторами, которые содержат "." двойное экранирование работает.

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