다음을 사용하여 파일을 업로드 및 다운로드하는 방법 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은 다운로드를 자동화하는 데 사용되는 작고 사용하기 쉬운 명령줄 프로그램입니다.. 기본적으로 WebDriver 스크립트에서 Wget에 액세스하여 다운로드 프로세스를 수행합니다.

Wget 설정

단계 1) C 드라이브에 새 폴더를 만들고 이름을 "Wget"으로 지정합니다.

wget.exe 다운로드 여기에서 위 단계에서 생성한 Wget 폴더에 넣으세요.

Wget 설정

단계 2) Windows 키 + "R"을 눌러 실행을 열고 "cmd"를 입력하고 확인을 클릭합니다.

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) 4단계에서 IOException을 처리해야 하므로 "java.io.IOException" 패키지를 가져옵니다.

WebDriver 및 Wget 사용

단계 2) getAttribute()를 사용하여 다운로드 링크의 "href" 값을 얻고 이를 문자열 변수로 저장합니다. 이 경우 변수 이름을 "sourceLocation"으로 지정했습니다.

WebDriver 및 Wget 사용

단계 3) 다음 명령을 사용하여 wget의 구문을 설정합니다.

WebDriver 및 Wget 사용

단계 4) WebDriver 코드에서 wget을 호출하여 다운로드 프로세스를 시작합니다.

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 사용

제품 개요

  • WebDriver에서 파일 업로드는 파일 선택 입력 필드의 sendKeys() 메소드를 사용하여 업로드할 파일의 경로를 입력함으로써 수행됩니다.
  • WebDriver는 자체적으로 파일 다운로드를 자동화할 수 없습니다.
  • WebDriver를 사용하여 파일을 다운로드하는 가장 쉬운 방법은 Wget을 사용하는 것입니다.