Een bestand uploaden en downloaden met behulp van Selenium Webstuurprogramma

Upload bestand in selenium

Het uploaden van bestanden in WebDriver gebeurt eenvoudigweg met behulp van de methode sendKeys() in het invoerveld voor bestandsselectie om het pad in te voeren naar het bestand dat moet worden geüpload.

In deze tutorial leren we hoe om te gaan met het uploaden en downloaden van bestanden.

Hoe u een bestand uploadt Selenium

Voor dit gedeelte zullen we gebruiken https://demo.guru99.com/test/upload/ als onze testapplicatie. Op deze site kan elke bezoeker gemakkelijk bestanden uploaden zonder dat hij zich hoeft aan te melden.

Bestand uploaden Selenium
Behandel de pop-up voor het uploaden van bestanden in Selenium Webstuurprogramma

Stel dat we het bestand “C:\newhtml.html” willen uploaden. Onze WebDriver-code zou eruit moeten zien zoals hieronder weergegeven.

package newproject;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PG9 {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
        String baseUrl = "https://demo.guru99.com/test/upload/";
        WebDriver driver = new FirefoxDriver();

        driver.get(baseUrl);
        WebElement uploadElement = driver.findElement(By.id("uploadfile_0"));

        // enter the file path onto the file-selection input field
        uploadElement.sendKeys("C:\\newhtml.html");

        // check the "I accept the terms of service" check box
        driver.findElement(By.id("terms")).click();

        // click the "UploadFile" button
        driver.findElement(By.name("send")).click();
        }
}

Nadat u dit script hebt uitgevoerd, zou u het bestand met succes moeten kunnen uploaden en zou u een soortgelijk bericht moeten krijgen.

Bestand uploaden Selenium

Houd rekening met de volgende twee dingen bij het uploaden van bestanden in WebDriver

  1. Het is niet nodig om het klikken op de knop "Bladeren" te simuleren. WebDriver voert automatisch het bestandspad in het tekstvak voor bestandsselectie van de element
  2. Bij het instellen van het bestandspad in uw Java IDE, gebruik het juiste escape-teken voor de back-slash.

Bestand uploaden Selenium

Een bestand downloaden in Selenium Webstuurprogramma

WebDriver heeft geen mogelijkheid om toegang te krijgen tot de dialoogvensters Downloaden gepresenteerd door browsers wanneer u op een downloadlink of -knop klikt. We kunnen deze dialoogvensters echter omzeilen met een apart programma genaamd "wget".

Wat is Wget?

Wget is een klein en eenvoudig te gebruiken opdrachtregelprogramma dat wordt gebruikt om downloads te automatiseren. Kortom, we hebben toegang tot Wget vanuit ons WebDriver-script om het downloadproces uit te voeren.

Wget instellen

Stap 1) Maak in uw C-schijf een nieuwe map en noem deze "Wget".

Wget.exe downloaden vanaf hier en plaats het in de Wget-map die u in de bovenstaande stap hebt gemaakt.

Wget instellen

Stap 2) Open Uitvoeren door op de Windows-toets + “R” te drukken; typ “cmd” en klik op OK

Wget instellen

Typ het commando “cd /” om naar de hoofdmap te gaan

Wget instellen

Stap 3) Typ het commando om te controleren of de gegeven installatie werkt

cmd /c C:\\Wget\\wget.exe -P C: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe

Wget instellen

Er lijkt een probleem te zijn bij het schrijven naar de C-schijf.

Stap 4) U moet de wget-fouten op de opdrachtregel debuggen voordat u de code uitvoert met behulp van Selenium Webdriver. Deze fouten zullen blijven bestaan Eclipse en de foutmeldingen zullen niet zo informatief zijn. Het beste is om wget eerst te laten werken via de opdrachtregel. Als het op de opdrachtregel werkt, zal het zeker ook werken Eclipse.

In ons voorbeeld, zoals getoond in stap 3, is er een probleem met het schrijven naar de C-schijf. Laten we de downloadlocatie wijzigen in D-schijf en de resultaten controleren.

cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe

Wget instellen

Messenger is succesvol gedownload.

Voordat u verder gaat, vergeet niet het gedownloade bestand te verwijderen

Gebruik WebDriver en Wget

In het volgende voorbeeld gebruiken we WebDriver en wget om een ​​populaire chatsoftware genaamd Yahoo te downloaden Messenger. Onze basis-URL zal zijn https://demo.guru99.com/test/yahoo.html.

Gebruik WebDriver en Wget

Stap 1) Importeer het pakket “java.io.IOException” omdat we later in stap 4 een IOException moeten opvangen.

Gebruik WebDriver en Wget

Stap 2) Gebruik getAttribute() om de “href”-waarde van de downloadlink te verkrijgen en sla deze op als een String-variabele. In dit geval hebben we de variabele de naam ‘sourceLocation’ gegeven.

Gebruik WebDriver en Wget

Stap 3) Stel de syntaxis voor wget in met de volgende opdracht.

Gebruik WebDriver en Wget

Stap 4) Start het downloadproces door wget aan te roepen vanuit onze WebDriver-code.

Gebruik WebDriver en Wget

Samenvattend kan uw WebDriver-code er uitzien zoals hieronder weergegeven.

package newproject;
import java.io.IOException;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PG8 {
    public static void main(String[] args) {
        
        System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
                String baseUrl = "https://demo.guru99.com/test/yahoo.html";
        WebDriver driver = new FirefoxDriver();

        driver.get(baseUrl);
        WebElement downloadButton = driver.findElement(By
        .id("messenger-download"));
        String sourceLocation = downloadButton.getAttribute("href");
        String wget_command = "cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate " + sourceLocation;

        try {
        Process exec = Runtime.getRuntime().exec(wget_command);
        int exitVal = exec.waitFor();
        System.out.println("Exit value: " + exitVal);
        } catch (InterruptedException | IOException ex) {
        System.out.println(ex.toString());
        }
        driver.close();
        }
        
}

Nadat u deze code hebt uitgevoerd, controleert u uw D-schijf en verifieert u dat Yahoo Messenger installatieprogramma is daar succesvol gedownload.

Gebruik WebDriver en Wget

Samenvatting

  • Het uploaden van bestanden in WebDriver gebeurt eenvoudigweg met behulp van de methode sendKeys() in het invoerveld voor bestandsselectie om het pad in te voeren naar het bestand dat moet worden geüpload.
  • WebDriver kan het downloaden van bestanden niet zelfstandig automatiseren.
  • De eenvoudigste manier om bestanden te downloaden met WebDriver is door Wget te gebruiken.