Le téléchargement de fichiers est une partie délicate de l'automatisation Actuellement, Selenium ne fournit pas d'API pour le téléchargement, vous savez donc utiliser des forces externes pour le terminer, telles que AutoIt et sikuli.
AutoIt, il s'agit d'un logiciel gratuit qui utilise un langage de script de type BASIC. Il est conçu pour automatiser les opérations de l'interface utilisateur graphique Windows, en utilisant une combinaison de touches de clavier simulées, de mouvements de souris et de fenêtres/contrôles pour obtenir une automatisation. tâches ;
Celle que je souhaite télécharger ici est décompressez-la comme indiqué ci-dessous :
Cliquez sur SciTe. dossier et nous ouvrons l'éditeur de script .
Ouvrez la fenêtre de téléchargement d'images Baidu, ouvrez l'outil AutoIt Windows Info, déplacez la souris vers l'outil Finder, maintenez le bouton gauche de la souris enfoncé et faites-le glisser vers le contrôle Windows qui doit être identifié. Faites glisser le bouton de forme cible du localisateur d'éléments vers la fenêtre contextuelle de téléchargement de fichier pour capturer certaines informations sur les éléments. Utilisez la souris pour faire glisser l'icône de l'outil Finder sur l'outil (la partie entourée en bleu sur l'image) vers le contrôle à identifier. Les informations d'identification uniques du contrôle seront affichées sur la partie gauche de l'outil (la partie marquée). dans l'encadré rouge sur l'image) ). D'après les résultats affichés, nous savons que le titre de ce contrôle est "Open", la classe est Edit et l'instance = 1. Nous utilisons ces informations du contrôle pour localiser le contrôle et écrire des scripts.
Ouvrez l'éditeur et appelez la fonction pour écrire un script basé sur les informations reconnues par le contrôle Finder Tool ; entrez le script suivant dans l'éditeur de script AutoIt sans les remarques que j'ai écrites ci-dessous.
Nous devons connaître ici les informations suivantes :
1. Le titre de la page d'opération, qui est utilisé pour corriger la page d'opération.
2. Pour les informations qui doivent être renseignées, remplissez le « chemin et nom du fichier téléchargé » dans la zone de saisie (fonctionnement de Windows)
3. Cliquez sur le bouton « Ouvrir » pour télécharger le fichier.
Sur la base des informations de contrôle identifiées ci-dessus, utilisez l'éditeur SciTE Script Editor pour écrire des scripts selon la syntaxe d'AutoIT.
Plusieurs méthodes pour implémenter le téléchargement de fichiers :
ControlFocus ( "窗口标题", "窗口文本", 控件ID) ---->设置输入焦点到指定窗口的某个控件上(即:控件ID“文件名”输入框的id) WinWait ( "窗口标题" [, "窗口文本" [, 超时时间]] ) ---->暂停脚本的执行直至指定窗口存在(出现)为止 ControlSetText ( "窗口标题", "窗口文本", 控件ID, "新文本" ) ---->修改指定控件的文本(即:控件ID“文件名”输入框的id) Sleep ( 延迟 ) ---->使脚本暂停指定时间段 ControlClick ( "窗口标题", "窗口文本", 控件ID [, 按钮] [, 点击次数]] ) ---->向指定控件发送鼠标点击命令(即:控件ID“打开”按钮的id)
Parmi elles, le titre est le champ Titre reconnu par AutoIt Window Info, et controlID est l'épissage de la classe et de l'instance reconnu par AutoIt Window Info. Le résultat après l'épissage comme indiqué ci-dessus devrait être. : Button1 (c'est-à-dire classnameNN)
ControlFocus(("title","text",controllD)用于识别windows文件上传窗口 ControlFocus("打开","","")向文件名输入框输入本地要上传文件的路径 ControlSetText("打开","","Edit1","C:\Users\DELL\Desktop\test\upload\北京宏哥.jpeg") Sleep(2000)点击上传窗口中的“打开“按钮 ControlClick("打开","","Button1")
Enregistrez le fichier de script au format ChromFileUpload.au3, puis cliquez sur le menu Outils dans l'éditeur de script AutoIt, tools=>go, pour effectuer la vérification du script (à condition que la fenêtre Windows soit open), la vérification est réussie, comme le montre la figure ci-dessous :
Pour que ce script soit appelé par le programme java, le fichier exe doit être généré via l'outil Compile Script to .exe (x64) (c'est AutoIt installé via le package d'installation .exe)
Édition du script AutoIt Cliquez sur le menu Outils dans le navigateur, sélectionnez compiler et un fichier .exe sera généré dans le même chemin (il s'agit d'AutoIt installé via le package de décompression)
invite Conversion terminée : copiez ChromeFileUpload.exe dans le projet, sera utilisé plus tard dans le script Selenium.
code Java
//实现文件上传。通过Runtime的静态方法获取Runtime对象 Runtime runtime = Runtime.getRuntime(); //通过Runtime对象调用exe方法 runtime.exec("C:\Users\DELL\Desktop\test\upload\ChromeFileUpload.exe");
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!