/ / Як працює JavascriptExecutor у селенімі webdriver - javascript, селен, селен-веб-драйвер, виконання

Як працює JavascriptExecutor у веб-драйвері selenium - javascript, selenium, selenium-webdriver, виконання

Коли хтось вставляє JavaScript у веб-сторінку за допомогою селену JavascriptExecutor об'єкт і виконує його, куди йде цей код JavaScript і як він виконується?

Я маю на увазі, що він сидить на сторінці назавжди (до перезавантаження сторінки) або виконується ззовні. І якщо він стоїть на сторінці, чи можна знову використовувати цей код?

Крім того, що, якщо якийсь інший код JavaScript вже запущений на сторінці, то що відбувається, вставлений код чекає, поки інший js код зупиниться або виконається паралельно за межами браузера.

Я запитав це питання, тому що я працюю над селеном і використовуючи JavaScriptExecutor. Так що я просто хотів знати, як усередині неї працює.

Відповіді:

1 для відповіді № 1

Після вивчення всіх API і документації JavascriptExecutor це те, що я знайшов.

Вона має два способи, а саме executeScript і executeAsyncScript. Перші методи є синшорними, тому, якщо будь-який інший вже запущений на сторінці, то, можливо, введений скрипт чекає завершення цього сценарію.

Інший метод виконує будь-який асинхронний скрипт (наприклад, виклики ajax або функції settimeout), так що введений сценарій не повинен чекати.

Також вставлений скрипт виконується як тілоанонімну функцію. Локальні змінні dimish після завершення сценарію, але глобальна змінна залишається на сторінці і, можливо, може бути повторно використана після завершення сценарію.

Якщо хтось має більше інформації про це, будь ласка, надайте. Дякую.