/ / Comment fonctionne JavascriptExecutor dans sélénium webdriver - javascript, sélénium, sélénium-webdriver, exécution

Comment JavascriptExecutor fonctionne-t-il dans sélénium webdriver - javascript, sélénium, sélénium-webdriver, exécution

Lorsque quelqu'un insère du javascript dans une page Web à l'aide de sélénium "s JavascriptExecutor objet et l'exécute, où va ce code javascript et comment fonctionne-t-il?

Je veux dire est-ce qu'il reste dans la page pour toujours (jusqu'à ce que la page soit rechargée) ou il est exécuté de l'extérieur. Et s'il se trouve dans la page, est-il possible d'utiliser ce code à nouveau?

En outre, si un autre code javascript est déjà en cours d’exécution dans la page, le code inséré attend que le code js s’arrête ou s’exécute parallèlement depuis le navigateur.

J'ai posé cette question parce que je travaille sur le sélénium et utilise le JavaScriptExecutor. Je voulais donc simplement savoir comment cela fonctionnait en interne.

Réponses:

1 pour la réponse № 1

Après avoir examiné toutes les API et la documentation de JavascriptExecutor c'est ce que j'ai trouvé.

Il a deux méthodes à savoir executeScript et executeAsyncScript. La première méthode est synchrone, donc si une autre déjà en cours d'exécution sur la page, alors éventuellement le script injecté attend que ce script se termine.

L'autre méthode exécute tout script asynchrone (comme les fonctions d'appel ajax ou settimout) afin que le script injecté n'ait pas à attendre.

Le script inséré est également exécuté en tant que corps deune fonction anonyme. Les variables locales diminuent une fois le script terminé, mais la variable globale reste dans la page et peut éventuellement être réutilisée une fois le script terminé.

Si certains ont plus d'informations à ce sujet, veuillez fournir. Je vous remercie.