So laden Sie eine Datei mit Selenium WebDriver in Java hoch

Lesezeit: 4 Minuten

So laden Sie eine Datei mit Selenium WebDriver in Java
Mahesh

Kann mir jemand sagen, wie man eine Datei mit Selenium per Java-Code hochlädt?

Wenn ich in der Anwendung auf die Schaltfläche klicke, wird ein neues Fenster geöffnet, mit dem ich die Upload-Datei auswählen kann. Die von Silverlight (C#) entwickelte Schaltfläche zum Durchsuchen.

  • Willkommen, Mahesh – kannst du uns bitte etwas mehr Hintergrund geben? Posten Sie vielleicht einen Screenshot und/oder den Code Ihrer Webanwendung und zeigen Sie uns den Webdriver-Code, den Sie bisher entwickelt haben?

    – Vince Bowdren

    3. Juni 2013 um 13:18 Uhr

So laden Sie eine Datei mit Selenium WebDriver in Java
Kedar T

Stellen Sie zunächst sicher, dass das Eingabeelement ist sichtbar

Wie von Mark Collin in der Diskussion angegeben Hier:

Klicken Sie nicht auf die Schaltfläche „Durchsuchen“, da dies ein Dialogfeld auf Betriebssystemebene auslöst und Ihren Test effektiv beendet.

Stattdessen können Sie Folgendes verwenden:

driver.findElement(By.id("myUploadElement")).sendKeys("<absolutePathToMyFile>");

meinUploadElement ist die ID dieses Elements (in diesem Fall Schaltfläche) und in sendKeys müssen Sie die angeben absoluter Pfad des Inhalts, den Sie hochladen möchten (Bild, Video usw.). Selen erledigt den Rest für Sie.

Beachten Sie, dass nur der Upload funktioniert Wenn das Element, das Sie senden, eine Datei im Formular sein sollte <input type="file">

  • Hallo @ArupRakshit, es wäre großartig, wenn Sie hier den Kern des Codes angeben würden. Damit wir uns ansehen können, warum es nicht funktioniert. Danke.

    – Kedar T

    1. Oktober 2013 um 17:08 Uhr

  • Sie können den folgenden Code verwenden, um den absoluten Pfad der Datei zu erhalten und den Inhalt hochzuladen String filePath = System.getProperty("user.dir") + "/src/res/test.pdf; driver.findElement(By.id("elementID")).sendKeys(filePath);

    – Gihanchanuka

    1. Juni 2015 um 8:15 Uhr


  • Ja, in diesem Fall ist das Attribut sehr wichtig für die Fokussierung.

    – Ripon Al Wasim

    3. Februar 2016 um 8:03 Uhr

1646171230 910 So laden Sie eine Datei mit Selenium WebDriver in Java
Neopan

driver.findElement(By.id("urid")).sendKeys("drive:\\path\\filename.extension");

1646171230 520 So laden Sie eine Datei mit Selenium WebDriver in Java
Zheka

Dies ist, was ich verwende, um das Bild über das Upload-Fenster hochzuladen:

    //open upload window
    upload.click();

    //put path to your image in a clipboard
    StringSelection ss = new StringSelection("C:\\IMG_3827.JPG");
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);

    //imitate mouse events like ENTER, CTRL+C, CTRL+V
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);

fertig

  • Süss. Aber dies sind Schlüsselereignisse, keine Mausereignisse (offensichtlich). Trotzdem tolle Idee… .

    – Martin Kersten

    11. Dezember 2014 um 19:59 Uhr

  • es schließt das Upload-Fenster für mich nicht

    – Mosaad

    14. Juli 2016 um 14:31 Uhr

1646171231 78 So laden Sie eine Datei mit Selenium WebDriver in Java
Benutzer3903359

Wenn Sie ein Textfeld zum Eingeben des Dateipfads haben, verwenden Sie einfach sendkeys, um den Dateipfad einzugeben, und klicken Sie auf die Schaltfläche „Senden“. Wenn es kein Textfeld zum Eingeben des Dateipfads gibt und Sie nur auf die Schaltfläche „Durchsuchen“ klicken und die Datei aus dem Windows-Popup auswählen können, können Sie das AutoIt-Tool verwenden, siehe Schritt unten, um AutoIt für dasselbe zu verwenden.

  1. Laden Sie das Autoit-Tool von herunter und installieren Sie es http://www.autoitscript.com/site/autoit/

  2. Öffnen Sie Programme -> Autoit-Tool -> SciTE Script Editor.

  3. Fügen Sie den folgenden Code in den Autoit-Editor ein und speichern Sie ihn als „Dateiname.exe“ (zB: new.exe)

    Dann kompilieren und erstellen Sie die Datei, um sie zur Exe zu machen. (Extras → Kompilieren)

Autoit-Code:

WinWaitActive("File Upload"); Name of the file upload window (Windows Popup Name: File Upload)    
Send("logo.jpg"); File name    
Send("{ENTER}")

Dann Compile and Build aus dem Menü Tools des Autoit-Tools -> SciTE Script Editor.

Fügen Sie den folgenden Java-Code in den Eclipse-Editor ein und speichern Sie ihn

Java-Code:

driver.findElement(By.id("uploadbutton")).click; // open the Upload window using selenium    
Thread.sleep("20000"); // wait for page load    
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "C:\\Documents and Settings\\new.exe"); // Give  path where the exe is saved.

Ich habe versucht, den obigen Roboter zu verwenden, es muss eine Verzögerung hinzugefügt werden 🙁 Sie können auch nicht debuggen oder etwas anderes tun, weil Sie den Fokus verlieren 🙁

//Upload-Fenster öffnen upload.click();

//put path to your image in a clipboard
StringSelection ss = new StringSelection(file.getAbsoluteFile());
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);

//imitate mouse events like ENTER, CTRL+C, CTRL+V
Robot robot = new Robot();
robot.delay(250);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.delay(50);
robot.keyRelease(KeyEvent.VK_ENTER);

  • Können Sie die Tastendruckschritte des Roboters erklären, was genau passiert, wenn die obigen Befehle aufgerufen werden?

    – zishan paya

    17. Juni 2016 um 10:49 Uhr

  • Es drückt die Eingabetaste, fügt Text ein und drückt erneut die Eingabetaste

    – Blitz

    15. April 2017 um 15:26 Uhr

  • Können Sie die Tastendruckschritte des Roboters erklären, was genau passiert, wenn die obigen Befehle aufgerufen werden?

    – zishan paya

    17. Juni 2016 um 10:49 Uhr

  • Es drückt die Eingabetaste, fügt Text ein und drückt erneut die Eingabetaste

    – Blitz

    15. April 2017 um 15:26 Uhr

905190cookie-checkSo laden Sie eine Datei mit Selenium WebDriver in Java hoch

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy