Кукловод, вызывающий обработчик события onChange, не работает - PullRequest
0 голосов
/ 03 июля 2018

Немного ударился головой об эту стену, надеясь, что у кого-нибудь есть какой-то совет.

Я пытаюсь вызвать обработчик onChange на странице, загруженной в Puppeteer. Несмотря на то, что я могу выбрать соответствующую опцию в списке выбора (проверяется отключением без головы), я не могу запустить обработчик событий.

1) Puppeteer предоставляет метод page.select () , который явно заявляет

"Запускает событие изменения и ввода, как только все предоставленные опции имеют был выбран "

Я могу выбрать ожидаемую опцию, но обработчик событий не запускается

await page.select('select#venue', '40');

2) Использование собственного javascript внутри вызова page.evaluate () для ручного выбора требуемой опции, затем генерации нового события и ручного использования element.dispatchEvent (событие), например,

document.querySelector('select#venue > option:nth-child(4)').selected = "selected";

const event = new Event('change', {bubbles: true});
event.simulated = true;

document.querySelector('select#venue').dispatchEvent(event));

3) Использование jQuery внутри вызова page.evaluate () для ручного выбора нужного opion, а затем запуска события, например

$("select#venue").val(17).change();

Совершенно из идейных людей, и мы ценим мысли!

...