Эквивалентны ли эти две функции кукловода? - PullRequest
0 голосов
/ 16 июня 2020

Эти 2 фрагмента кода выбирают и щелкают один и тот же элемент?

Практически эквивалентны?

await page.$eval('#loginForm > button', form => form.click());
const button = await page.$('#loginForm > button');
await button.click();

1 Ответ

2 голосов
/ 16 июня 2020

Не всегда.

Первый код просто использует Web-API HTMLElement.click().

Второй использует более сложным способом :

Этот метод прокручивает элемент в поле зрения, если необходимо, а затем использует page.mouse для щелчка в центре элемента. Если элемент отсоединен от DOM, метод выдает ошибку.

Я читал в различных выпусках, что пользователи по-разному влияли на эти подходы в разных контекстах страницы. Иногда один из них работает правильно, а другой - нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...