Gestion du téléchargement de fichiers à l'aide de Selenium WebDriver sur les machines Windows
Selenium WebDriver est un outil populaire pour automatiser les tâches du navigateur Web. Une tâche courante consiste à télécharger des fichiers, ce qui peut être particulièrement difficile sur les machines Windows.
Scénario : téléchargement de fichiers Windows
L'utilisateur définit un scénario dans lequel le Selenium standard La méthode WebDriver pour le téléchargement de fichiers, utilisant sendKeys(), ne fonctionne pas. Ils fournissent des captures d'écran montrant qu'une fenêtre de sélection de fichier apparaît, mais ils ne peuvent pas interagir avec elle.
Solution
L'utilisateur a posté sur Stack Overflow et a trouvé une solution qui utilise la classe Robot pour simuler les frappes au clavier dans la fenêtre de sélection de fichier. La solution ressemble à ceci :
<code class="java">driver.findElement(By.id("uploadfile")).click(); Robot r = new Robot(); r.keyPress(KeyEvent.VK_C); // C r.keyRelease(KeyEvent.VK_C); r.keyPress(KeyEvent.VK_COLON); // : (colon) r.keyRelease(KeyEvent.VK_COLON); r.keyPress(KeyEvent.VK_SLASH); // / (slash) r.keyRelease(KeyEvent.VK_SLASH); // etc. for the whole file path r.keyPress(KeyEvent.VK_ENTER); // confirm by pressing Enter in the end r.keyRelease(KeyEvent.VK_ENTER);</code>
La classe Robot saisit le chemin de fichier spécifié avec des frappes au clavier. Il s'agit d'une technique "aveugle", car Selenium ne fournit pas d'accès direct à la boîte de dialogue de sélection de fichier. Cette approche suppose que le curseur se trouve dans la saisie du nom de fichier après l'ouverture de la fenêtre.
Alternatives
L'utilisateur mentionne également une méthode alternative utilisant Flash. Cependant, cela implique de modifier le code source de l'application Flash et d'utiliser JavaScript pour l'appeler. C'est une approche plus complexe et moins fiable.
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!