El document.getElementById
y document.title
est l'API HTML DOM de JavaScript. Vous pouvez l'utiliser pour écrire l'automatisation script en JavaScript.
Mais vous devez exécuter une telle automatisation script côté navigateur, soit dans la console DevTool du navigateur, soit vous faites la page HTML inclut votre automatisation script via <script src='<your automation script><script>'
dans le code source de la page.
Réfléchir à la façon dont vous pouvez injecter votre script d'automatisation dans une page web d'un site qui ne vous appartient pas. Et même si vous testez votre site web propriétaire, votre automatisation script sera chargée et exécutée tant que la page se charge. Il est difficile pour vous de gérer le processus d'exécution, de packager votre site web pour inclure l'automatisation script sur la page de votre site, etc. Et utilisez JavaScript pour écrire l'automatisation script uniquement.
Utiliser cette méthode pour automatiser une page Web n'est donc pas une solution judicieuse.
Selenium est un outil d'automatisation du Web reposant sur Webdriver. Webdriver agit comme un proxy entre l'API Selenium et le navigateur réel. Chaque fournisseur de navigateur développera et maintiendra son propre webdriver (Webdriver est un binaire exécutable), mais tous les fournisseurs de navigateurs doivent suivre la spécification W3C de Webdriver pour mettre en œuvre son propre wedriver, de sorte que lorsque votre script appelle la même API Selenium sur la même page dans différents navigateurs, vous pouvez obtenir le même résultat.
Comme driver.findElement
y driver.sendKeys
sont des API selenium que vous utilisez pour composer votre script d'automatisation. Et selenium fournit différentes API de langage, comme python, javascript, Java, ruby, c#, VBA, perl, php. Vous pouvez choisir votre langage script préféré. Le nom de la méthode, l'utilisation sont différents sur l'API de langue différente.
Le binaire Webdriver ne peut accepter que les requêtes http, il ne peut pas exécuter les méthodes/fonctions de l'API Selenium. Vous pouvez penser que lorsque le binaire webdriver démarre, un serveur http s'exécute à l'intérieur de celui-ci pour accepter la requête http envoyée par votre script d'automatisation.
En fait, les API selenium de chaque langue ont été implémentées pour traduire toutes les méthodes des API en une requête http, puis envoyer la requête au binaire webdriver en cours d'exécution, et enfin le binaire webdriver traduira la requête http en actions sur le navigateur.
Toutes les implémentations du binaire WebDriver qui communiquent avec le navigateur utilisent un protocole filaire commun. Ce protocole définit un service web RESTful utilisant JSON sur HTTP, appelé The WebDriver JSON Wire Protocol
Plus de détails à l'adresse aquí .
0 votes
Selenium + JavaScript a sa propre syntaxe, alors que les méthodes et propriétés JavaScript courantes comme
document.title
peut toujours être utilisé via JavaScriptExecutor0 votes
Je vois, merci ! Laquelle des deux options choisirais-tu pour écrire des scripts d'automatisation ? Je ne sais vraiment pas ce qui est le plus utilisé dans le poste d'automatisation de l'AQ, et donc lequel augmentera les chances d'être embauché.
0 votes
Non. JavaScriptExecutor n'est pas un outil distinct, mais une méthode de Selenium qui permet d'exécuter du JavaScript pur. Je ne suis pas sûr de la syntaxe, mais son utilisation ressemblera à peu près à ceci
var title = driver.executeScript('return document.title;')