Как да качите и изтеглите файл с помощта на Selenium

Качете файл в селен

Качването на файлове в WebDriver се извършва просто чрез използване на метода sendKeys() в полето за въвеждане на файл за въвеждане на пътя до файла, който ще се качи.

В този урок ще научим как да се справяме с качванията и изтеглянията на файлове.

Как да качите файл в Selenium

За този раздел ще използваме https://demo.guru99.com/test/upload/ като нашето тестово приложение. Този сайт позволява лесно на всеки посетител да качва файлове, без да е необходимо да се регистрира.

Качване на файл в Selenium
Управление на изскачащия прозорец за качване на файл Selenium Уебдрайвер

Да кажем, че искаме да качим файла „C:\newhtml.html“. Нашият код на WebDriver трябва да бъде като този, показан по-долу.

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();
        }
}

След като стартирате този скрипт, трябва да можете да качите файла успешно и трябва да получите съобщение, подобно на това.

Качване на файл в Selenium

Не забравяйте да следвате две неща, когато качвате файлове в WebDriver

  1. Няма нужда да симулирате щракване върху бутона „Преглед“. WebDriver автоматично въвежда пътя на файла в текстовото поле за избор на файл на елемент
  2. Когато задавате пътя на файла във вашия Java IDE, използвайте правилния екраниращ знак за обратната наклонена черта.

Качване на файл в Selenium

Как да изтеглите файл в Selenium Уебдрайвер

WebDriver няма възможност за достъп до диалоговите прозорци за изтегляне представени от браузърите, когато щракнете върху връзка или бутон за изтегляне. Въпреки това можем да заобиколим тези диалогови прозорци с помощта на отделна програма, наречена „wget“.

Какво е Wget?

Wget е малка и лесна за използване програма от команден ред, използвана за автоматизиране на изтеглянията. По принцип ще имаме достъп до Wget от нашия скрипт WebDriver, за да извършим процеса на изтегляне.

Настройване на Wget

Стъпка 1) Във вашия C диск създайте нова папка и я наименувайте като „Wget“.

Изтеглете wget.exe оттук и го поставете в папката Wget, която сте създали от горната стъпка.

Настройване на Wget

Стъпка 2) Отворете Run, като натиснете клавиша windows + “R” ; въведете „cmd“ и щракнете върху OK

Настройване на Wget

Въведете командата “cd /”, за да се преместите в основната директория

Настройване на Wget

Стъпка 3) Въведете командата, за да проверите дали дадената настройка работи

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

Настройване на Wget

Изглежда има проблем при запис в C устройство.

Стъпка 4) Трябва да отстраните грешките на wget в командния ред, преди да изпълните кода с помощта на Selenium Уебдрайвер. Тези грешки ще продължат да съществуват Eclipse и съобщенията за грешки няма да бъдат толкова информативни. Най-добре първо да накарате wget да работи с помощта на командния ред. Ако работи в командния ред, със сигурност ще работи Eclipse.

В нашия пример, както е показано в стъпка 3, има проблем при запис в C устройство. Нека променим местоположението за изтегляне на D диск и да проверим резултатите.

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

Настройване на Wget

Messenger беше изтеглен успешно.

Преди да продължите, не забравяйте да изтриете изтегления файл

Използване на WebDriver и Wget

В следващия пример ще използваме WebDriver и wget, за да изтеглим популярен софтуер за чат, наречен Yahoo Messenger. Нашият основен URL ще бъде https://demo.guru99.com/test/yahoo.html.

Използване на WebDriver и Wget

Стъпка 1) Импортирайте пакета „java.io.IOException“, защото ще трябва да хванем IOException по-късно в стъпка 4.

Използване на WebDriver и Wget

Стъпка 2) Използвайте getAttribute(), за да получите стойността „href“ на връзката за изтегляне и да я запишете като променлива String. В този случай наименувахме променливата като „sourceLocation“.

Използване на WebDriver и Wget

Стъпка 3) Настройте синтаксиса за wget, като използвате следната команда.

Използване на WebDriver и Wget

Стъпка 4) Започнете процеса на изтегляне, като извикате wget от нашия код на WebDriver.

Използване на WebDriver и Wget

За да обобщим всичко, вашият WebDriver код може да изглежда като този, показан по-долу.

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();
        }
        
}

След като изпълните този код, проверете вашето D устройство и се уверете, че Yahoo Messenger инсталаторът беше изтеглен успешно там.

Използване на WebDriver и Wget

Oбобщение

  • Качването на файлове в WebDriver се извършва просто чрез използване на метода sendKeys() в полето за въвеждане на файл за въвеждане на пътя до файла, който ще се качи.
  • WebDriver не може сам да автоматизира изтеглянето на файлове.
  • Най-лесният начин за изтегляне на файлове с помощта на WebDriver е да използвате Wget.

Обобщете тази публикация с: