Ich versuche, eine Datei in selen webdriver mit Roboter-Klasse hochladen und ich benutze Mac-Maschine. Schlüssel senden funktioniert nicht. Unten ist der Code und es funktioniert gut, wenn ich eine Datei zum ersten Mal lade. Ich versuche, eine andere Datei von der gleichen Seite wieder zu laden, aber da das Applet geöffnet ist, wird keine Datei ausgewählt zu werden und Skript fehlschlägtWie hochzuladen mehrere Dateien mit Robot-Klasse in Selen Webdriver (Mac)?
browse.click(); // Click on a browse button from the page
File file = new File(photoLocation); //send path of the file
StringSelection StringSelection = new StringSelection(file.getAbsolutePath());
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(StringSelection, null); //Copies the filepath to clipboard
robot = new Robot();
//This launches java applet, so we are using cmd+tab to shift the focus
robot.keyPress(KeyEvent.VK_META);
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_META);
robot.keyRelease(KeyEvent.VK_TAB);
robot.delay(500);
//Open Goto window
robot.keyPress(KeyEvent.VK_META);
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_G);
robot.keyRelease(KeyEvent.VK_META);
robot.keyRelease(KeyEvent.VK_SHIFT);
robot.keyRelease(KeyEvent.VK_G);
//Paste the clipboard value
robot.keyPress(KeyEvent.VK_META);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_META);
robot.keyRelease(KeyEvent.VK_V);
//Press Enter key to close the Goto window and Upload window
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
robot.delay(500);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
i den gleichen Code verwenden wieder von der Hauptseite aufgerufen wird zum Hochladen die zweite Datei. Da das Java-Applet jedoch noch geöffnet ist, kann ich die Datei nicht hochladen. Gibt es eine Möglichkeit für mich, das Applet zu schließen?
Dies ist keine Antwort, sorry. Wenn Sie eine verwandte Frage haben, [fragen Sie] (https://stackoverflow.com/help/how-to-ask) eine neue und beziehen Sie sich hier. Vielleicht wollten Sie [comment] (https://stackoverflow.com/help/privileges/comment) zu dieser Frage. Ähnliche Fragen finden Sie im Menü "Related". Um mehr Aufmerksamkeit auf diese Frage zu lenken, können Sie [upvote] (https://stackoverflow.com/help/privileges/vote-up) oder [start a bounty] (https://stackoverflow.com/help/privileges/set -Bounties). Wenn du noch nicht genug Ruf hast, ist das aus einem bestimmten Grund --- [_ verdiene etwas! _] (Https://stackoverflow.com/help/whats-reputation) – jaySf