/ / La classe Robot ne fonctionne pas dans IE pour le scénario de téléchargement de fichier - java, téléchargement de fichier, sélénium-webdriver, awtrobot

La classe de robot ne fonctionne pas dans IE pour le scénario de téléchargement de fichier - Java, téléchargement de fichiers, sélénium-webdriver, awtrobot

Je suis tombé sur cette situation J'ai un fichier uploadéscenario ..here je ne peux pas utiliser l'approche sendKeys pour envoyer le chemin absolu du fichier car il n'y a pas d'élément d'entrée, je n'ai qu'un bouton "parcourir" pour sélectionner le fichier dans le dossier local

donc pour gérer cela, j'utilise la classe robot et la logique ci-dessous après avoir cliqué sur le bouton "Navigateur" à l'aide de sélénium webdriver:

StringSelection sc = new StringSelection(file);                 >>file is the one to upload
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(sc, null);
try {
Robot robot= new Robot();
robot.delay(3000);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
robot.delay(2000);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);

robot.delay(3000);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);

}

Cela fonctionne très bien en chrome et en firefox ...mais pas dans Internet Explorer 11 Dans IE, la boîte de dialogue du modèle s'ouvre, mais il ne s'agit pas de coller le chemin du fichier supposé être chargé. Est-ce que quelqu'un est confronté à ce problème dans IE? Faut-il faire quelque chose de plus pour le faire dans IE s'il vous plaît, faites-moi savoir

Merci, Musaffir

Réponses:

0 pour la réponse № 1

Détermine s'il faut exiger que la fenêtre IEavoir le focus avant d'effectuer toute opération d'interaction utilisateur (événements de souris ou de clavier). Cette fonctionnalité est fausse par défaut, mais fournit des interactions d'événements natifs beaucoup plus précises.

Définissez le type de capacité comme ci-dessous.Il travaille pour moi.

capacités.setCapability ("requireWindowFocus", false);