how handle windows pop up selenium using autoit
Ce didacticiel explique différentes méthodes pour gérer les fenêtres contextuelles dans Selenium chaque fois que l'automatisation devient hors de portée à l'aide de l'outil AutoIT:
AutoIT est un outil tiers qui aide Selenium à gérer les fenêtres contextuelles telles que les fenêtres contextuelles d'authentification Windows, les applications Flash, les applications de bureau, etc.
Selenium est limité à l'automatisation des applications Web uniquement. Dans certains cas, une fenêtre contextuelle Windows peut apparaître dans l’application que Selenium ne peut pas gérer. Afin de gérer de tels scénarios, AutoIT donne un coup de main dans lequel il prend en charge l'automatisation des applications Windows et des applications de bureau.
=> Visitez ici pour voir la série de formation Selenium pour tous.
Ce que vous apprendrez:
Présentation de l'outil AutoIT
Voici un didacticiel vidéo:
Gérer les fenêtres contextuelles à l'aide d'AutoIT
AutoIT est un outil tiers utilisé pour gérer les applications Windows. Le langage de script utilisé est appelé VBScript.AutoIt est également un logiciel gratuit. Il utilise une combinaison demouvement de la souris et frappes du clavier pour automatiser les actions qui ne peuvent pas être effectuées par le pilote web sélénium.
AutoIt est utilisé au format .exe afin de pouvoir être utilisé dans le script Selenium Automation.
Regardons un Exemple, où nous aurions besoin de télécharger un fichier à l'application.
Le scénario consiste à télécharger une photo de profil sur LinkedIn. Les étapes de test pour ce scénario sont:
- Entrer l'URL
- Entrez un nom d'utilisateur et un mot de passe valides et connectez-vous.
- Cliquez sur l'icône de téléchargement de profil.
- Windows pop-up apparaît dans lequel le chemin pour télécharger une image est entré.
Jusqu'à l'étape 3, Selenium Automation peut le gérer. Lorsque la fenêtre contextuelle de Windows apparaît, le script AutoIT est utilisé pour automatiser cette partie.
Maintenant, voyons comment automatiser les actions dans la fenêtre contextuelle Windows?
Cela peut être géré de 4 manières différentes.
- Utilisation des commandes Windows pour télécharger un fichier particulier.
- Utilisation des commandes de contrôle pour télécharger un fichier.
- Utilisation de l'argument de ligne de commande pour spécifier le FileName à télécharger.
- Utilisation de l'outil d'enregistrement AutoIT.
Tous les scripts sont créés en utilisant AutoItScriptEditor, qui est disponible dans le package de dossiers AutoIt.
Aller vers AutoIt3> SciTE> SciTE.exe et ouvrez l'application ScriptEditor.
# 1) Utilisation des commandes Windows
Nous avons différents ensembles de fonctions dans AutoIt.
Vous pouvez jeter un oeil ici. Maintenant, afin d'automatiser les actions contextuelles de Windows, analysons d'abord les actions. Ceux-ci inclus:
- Définissez le focus sur la fenêtre actuelle.
- Entrez le chemin du nom de fichier à télécharger dans FileName Box.
- Cliquez sur le bouton Ouvrir ou appuyez sur Entrée dans le clavier.
Comprenons les points ci-dessus en détail:
- Définir le focus sur la fenêtre actuelle
WinWaitActive : Définit le focus du curseur sur le nom de la fenêtre spécifié. Dans ce cas, le titre de la fenêtre est «Ouvrir». Nous spécifions donc la commande commeWinWaitActive («Ouvrir»).
Veuillez noter que le même titre Windows diffère pour chaque navigateur.
Dire, pour Firefox , c'est ‘File Upload’, - La commande AutoIT sera doncWinWaitActive («Téléchargement de fichier»).
Pour IE, il s'agit de 'Fichier à télécharger' - La commande AutoIT sera doncWinWaitActive («Fichier à télécharger»)
Pour Chrome , il est «Open» - La commande AutoIT sera doncWinWaitActive («Ouvrir»)
Vous devez spécifier le titre de la fenêtre en fonction du navigateur que vous utilisez pour l'automatisation.
deux. Entrez le chemin du nom de fichier à télécharger dans FileName Box
Envoyer - envoie des coups de clavier ou en d'autres termes, il simule les actions du clavier.
Les actions peuvent être en appuyant sur la touche Entrée, la touche Maj, etc. OU en tapant une chaîne, un nombre, etc. Dans cet exemple, je dois taper le fileName, donc j'utilise la commande pour entrer le nom de fichier dans la fenêtre. -Envoyer ('D: passeport.jpg')
3. Cliquez sur le bouton Ouvrir ou appuyez sur Entrée dans le clavier
Envoyer ({ENTER})- envoie la touche ENTER à la fenêtre, qui à son tour termine l'action de téléchargement.
type de test en génie logiciel
Enregistrez le script créé à n'importe quel emplacement. Il sera enregistré au format .au3. Une fois enregistré, cliquez avec le bouton droit sur le fichier .au3 et compilez-le.
Après compilation, il est converti au format .exe (format exécutable). Ce fichier est ce que nous utilisons dans le script Selenium.
Une fois le fichier .exe créé, vous pouvez utiliser le fichier dans le script Selenium Automation pour exécuter les commandes qu'il contient
Runtime.getRuntime.exec («spécifiez le nom de fichier exe autoIt ici»)
# 2) Utilisation des commandes de contrôle
Nous avons certaines commandes de contrôle dans AutoIT pour effectuer des actions. Voici la liste des commandes de contrôle dans AutoIT.
Voyons comment automatiser le même scénario de téléchargement de fichiers à l'aide de ces commandes de contrôle d'AutoIT.
Maintenant, dans l'ordre pour automatiser la fenêtre contextuelle de Windows, les actions ci-dessous doivent être effectuées:
- Définissez le focus sur la fenêtre actuelle.
- Entrez le chemin du nom de fichier à télécharger dans FileName Box.
- Cliquez sur le bouton Ouvrir ou appuyez sur Entrée dans le clavier.
Comprenons les points ci-dessus en détail:
- Définir le focus sur la fenêtre actuelle
ContrôleFocus:Définit le focus sur l'élément spécifié. Dans ce cas, nous mettons le focus sur la zone de texte d'édition.
Lorsque vous regardez sa description, vous pouvez voir qu'il nécessite un ou plusieurs paramètres. Nous pouvons transmettre ces paramètres en utilisant l'outil Windows Info d'AutoIt.
Soyons ouvrez l'application AutoIT comme ci-dessous:
L'outil Windows Info s'ouvre comme ci-dessous:
Cet outil est utilisé pour inspecter des éléments dans l'application / pop-up Windows.
Afin d’obtenir divers attributs de chaque élément dans la fenêtre contextuelle Windows, faites glisser l’icône «Finder» de l’outil d’information Windows et cliquez sur l’élément pour afficher ses propriétés comme ci-dessous.
Nous avons ses propriétés affichées dans l'outil comme indiqué.
Pour la zone FileName, les propriétés et ses valeurs correspondantes sont:
- Titre - Ouvert
- ClassName - Modifier
- Instance - 1
En utilisant ces propriétés, nous pouvons transmettre les paramètres de la commande de contrôle.
Maintenant, pour définir le focus sur la zone FileName, nous appelons la commande «ControlFocus» comme ci-dessous:
- Syntaxe: ControlFocus ('titre', 'texte', controlID)
- Le «titre» correspond au titre affiché dans l’outil.
- L'ID de contrôle est la combinaison de ClassName + Instance dans l'outil
ControlFocus ('Ouvrir', '', 'Modifier1')
Où,
- Open - est le titre
- Edit1 - est le controlID (controlID = ClassName + Instance)
deux. Entrez le chemin du nom de fichier à télécharger dans FileName Box
ControlSetText - saisit le texte de l'élément.
- Syntaxe: ControlSetText ('title', 'text', controlID, 'new text' (, flag = 0))
Dans notre cas, nous avons le nom du fichier dans la zone de texte.
ControlSetText ('Ouvrir', '', 'Modifier1', 'D: passeport.jpg')
Où,
- Open - est le titre
- Edit1 - est le controlID (controlID = ClassName + Instance)
- D: passeport.jpg - est le nom de fichier à télécharger
3. Cliquez sur le bouton Ouvrir ou appuyez sur Entrée dans le clavier
ContrôleCliquez - effectue une action de clic sur l'élément. Dans cet exemple, nous effectuons un clic sur le bouton «Ouvrir»
- Syntaxe: ControlClick ('title', 'text', controlID (, button = 'left' (, clicks = 1 (, x (, y)))))
Dans notre cas, il devrait cliquer sur le bouton «Ouvrir» dans la fenêtre contextuelle de Windows.
ControlClick ('Ouvrir', '', 'Bouton1')
Où,
- Open - est le titre
- Button1 - est le controlID (controlID = ClassName + Instance)
Nous appelons le fichier .exe à partir du code Selenium en utilisant la commande-Runtime.getRuntime.exec («spécifiez le nom de fichier exe autoIt ici»)
REMARQUE: Lorsque nous devons télécharger plusieurs fichiers en une seule instance, nous pouvons spécifier tous les noms de fichiers dans une variable et passer le nom de la variable dans la commande.
ControlFocus - définit le focus sur l'élément.
$ files - est la variable créée et contient le texte / nom de fichier à télécharger.
ControlSetText - transmet la variable qui a les noms de fichier à télécharger à l'élément «Edit».
ContolClick - exécute une action de clic sur l'élément.
# 3) Utilisation de la ligne de commande pour spécifier le nom de fichier à télécharger
La même procédure peut être abordée d'une manière différente dans laquelle le nom de fichier est obtenu de l'utilisateur. Cela se fait en utilisant l'approche de ligne de commande.
Au lieu de spécifier directement le nom de fichier dans AutoIT, nous le passons dans le code Selenium comme ci-dessous:
Script AutoIT: (Upload.exe)
ControlFocus(“Open”,””,”Edit1”) ControlSetText(“Open”,””,”Edit1”,$cmdLine(1)) ControlClick(“Open”,””,”Button1”)
Dans le code sélénium:
Nous le spécifions comme:
Runtime.getRuntime.exec(“Path of .exe file”+””+ “FileToUpload”)
Dans ce cas, ce sera
Runtime.getRuntime.exec(“D:automationUpload.exe”+””+ “D:automationimage.jpg”)
Enregistrez le fichier créé et compilez-le pour le convertir au format exécutable.
# 4) Utilisation de la fonction d'enregistrement d'AutoIT
Cette fonctionnalité n'est disponible que dans les versions inférieures à 3.3.14.0. Les versions supérieures à celles-ci ne prennent pas en charge cette fonctionnalité.
Pour ouvrir l'outil d'enregistrement, accédez à AutoIt3> Extras> Au3Record> Au3Record.exe
Lorsque nous commençons à l'utiliser, assurez-vous toujours de désélectionner l'option «Enregistrer la souris» car l'interaction de la souris varie pour chaque résolution d'écran. Enregistrez toujours les coups de clavier.
Sélectionnez «Cliquer pour enregistrer» dans l’outil et les actions y sont enregistrées.
Lorsque vous avez terminé l’enregistrement, sélectionnez «Cliquer pour arrêter» et enregistrez le fichier
Vous pouvez ouvrir le fichier .au3 enregistré pour voir les commandes créées pour chaque action que vous avez effectuée
Compilez le script et convertissez-le en fichier .exe.
Le fichier .exe créé peut être directement utilisé dans le code Selenium pour l'exécution comme ci-dessous:
Runtime.getRuntime.exec(“D:automationRecord.exe”)
Conclusion
Ainsi, toute fenêtre contextuelle Windows comme l'authentification ou le téléchargement de fichier ou l'ouverture de fichier, etc. peut être gérée à l'aide d'AutoIT en incluant son fichier de script dans Selenium.
Dans le chapitre suivant, nous découvrirons un autre outil tiers appelé Sikuli, utilisé pour automatiser les applications à l'aide de la technique de reconnaissance d'image.
=> Visitez ici pour apprendre le sélénium à partir de zéro.
lecture recommandée
- Comment gérer les alertes / fenêtres contextuelles dans Selenium WebDriver - Tutoriel Selenium # 16
- Tutoriel Cucumber Selenium: Intégration Cucumber Java Selenium WebDriver
- Les 10 principales exceptions au sélénium et comment les gérer (code exact)
- Introduction à Selenium WebDriver - Tutoriel Selenium # 8
- Tutoriel AutoIt - Téléchargement, installation et script AutoIt de base
- Tutoriel ChromeDriver Selenium: Tests Selenium Webdriver sur Chrome
- 30+ meilleurs didacticiels sur le sélénium: apprenez le sélénium avec de vrais exemples
- Opportunité d'emploi indépendant à temps partiel pour les experts Selenium