Кукловод - не может ввести поле ввода или нажать кнопку - PullRequest
1 голос
/ 09 июля 2020

Я использую кукловод, чтобы автоматизировать ввод формы. Я могу заполнить все поля, кроме поля электронной почты, а также не могу нажать кнопку подписки в конце формы. Ниже мой код. FNAME работает, но # mce-EMAIL не работает (даже когда я пробую page.type). Также по какой-то причине не может быть найден селектор для кнопки подписки. Ниже также приведен снимок экрана той части модели DOM, которая связана с этим кодом.

По какой-либо причине мой код может не работать?

  await page.$eval('#mce-EMAIL', el => el.value = 'test@example.com');
  await delay(500);
  await page.type('input[name="FNAME"]', MyData[row].fname)
  await delay(500);


  await page.click('#mc-embedded-subscribe')

ДОМ

1 Ответ

1 голос
/ 09 июля 2020

Проблема с такими веб-сайтами в том, что у них одинаковый идентификатор для нескольких элементов. Плохое дизайнерское решение.

введите описание изображения здесь

Вам необходимо использовать правильный селектор. В противном случае он все еще заполняет скрытую форму.

Вот правильный селектор на основе предоставленной вами ссылки.

#mc_embed_signup_scroll #mce-EMAIL 
...