다음을 사용하여 파일을 업로드 및 다운로드하는 방법 Selenium

⚡ 스마트 요약

파일 업로드 및 다운로드 Selenium WebDriver 워크플로는 입력 필드에는 네이티브 sendKeys() 함수를, 대화 상자에는 AutoIt 또는 Robot을, 그리고 CDP 명령에는 의존합니다. Selenium 4. 자동화 실행 중 안전한 다운로드 경로를 설정합니다.

  • 📤 업로드 방법: 찾아보기 버튼을 클릭하지 않고 절대 파일 경로를 입력하려면 파일 입력 요소에 sendKeys() 메서드를 사용하세요.
  • 📥 다운로드 경로: ChromeOptions 또는 CDP Page.setDownloadBehavior를 통해 사용자 지정 다운로드 디렉터리를 구성하세요. Selenium 4.
  • 🪟 네이티브 대화 상자: 운영체제 파일 선택기가 WebDriver와의 상호 작용을 차단할 경우 AutoIt 스크립트 또는 java.awt.Robot을 실행합니다.
  • 🤖 AI 지원: 생성형 AI는 선택자를 제안하고, 테스트 데이터 파일을 생성하며, 다운로드한 파일의 무결성을 자동으로 검증합니다.
  • 🛡️ 유효성 검사: 업로드 성공 여부는 응답 메시지를 통해 확인하고, 다운로드 성공 여부는 파일 크기 또는 체크섬 비교를 통해 검증하십시오.

다음을 사용하여 파일을 업로드 및 다운로드하는 방법 Selenium

WebDriver에서 파일을 업로드하는 방법은 간단합니다. 파일 선택 입력 필드에 sendKeys() 메서드를 사용하여 업로드할 파일의 경로를 입력하면 됩니다. 이 튜토리얼에서는 WebDriver를 사용하여 파일 업로드 및 다운로드를 처리하는 방법을 배우게 됩니다. Selenium 웹드라이버.

파일을 업로드하는 방법 Selenium

이 섹션에서는 다음을 사용합니다. https://demo.guru99.com/test/upload/ 우리의 테스트 응용 프로그램으로. 이 사이트를 사용하면 방문자가 가입하지 않고도 쉽게 파일을 업로드할 수 있습니다.

파일 업로드 위치 Selenium
파일 업로드 팝업 처리 Selenium 웹드라이버

“C:\newhtml.html” 파일을 업로드하고 싶다고 가정해 보겠습니다. WebDriver 코드는 아래와 같아야 합니다.

꾸러미 새로운 프로젝트;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.Firefox운전사;
공개 수업 PG9 {
공공 정적 무효 기본([] args) {
System.setProperty(“웹드라이버.게코.드라이버”,“C:\\geckodriver.exe”);
baseUrl = “https://demo.guru99.com/test/upload/”;
웹드라이버 운전사 = Firefox운전사();

드라이버.get(baseUrl);
웹 요소 uploadElement = driver.findElement(By.id(“업로드파일_0”));

// 파일 경로를 파일 선택 입력 필드에 입력하세요
uploadElement.sendKeys(“C:\\newhtml.html”);

// "서비스 약관에 동의합니다" 확인란을 선택하세요
driver.findElement(By.id("자귀")).딸깍 하는 소리();

// "파일 업로드" 버튼을 클릭하세요
driver.findElement(By.name("보내다")).딸깍 하는 소리();
}
}

이 스크립트를 실행한 후에는 파일을 성공적으로 업로드할 수 있어야 하며 다음과 유사한 메시지가 표시되어야 합니다.

파일 업로드 위치 Selenium

WebDriver에 파일을 업로드할 때 다음 두 가지 사항을 기억하세요.

  1. "찾아보기" 버튼을 클릭하는 동작을 시뮬레이션할 필요가 없습니다. WebDriver는 파일 경로를 파일 선택 텍스트 상자에 자동으로 입력합니다. 요소.
  2. 파일 경로를 설정할 때 Java IDE에서는 백슬래시에 적절한 이스케이프 문자를 사용하세요.

파일 업로드 위치 Selenium

AutoIt을 사용하여 입력 필드가 없는 업로드 대화 상자 처리하기

페이지에서 기본 버튼 대신 사용자 지정 찾아보기 버튼을 사용하는 경우 해당 요소에서 sendKeys()가 작동하지 않는 경우, AutoIt 스크립트를 호출할 수 있습니다. Selenium 운영체제 대화 상자에 파일 경로를 입력하고 Enter 키를 누르십시오.

아래 스크립트를 다음과 같이 저장하십시오. upload.au3컴파일하여 업로드.exe그런 다음 다음에서 호출합니다. Java 찾아보기 버튼을 클릭한 후.

upload.au3 - 열기 대화 상자가 나타날 때까지 기다린 후 파일 경로를 입력합니다.
WinWaitActive("열다")
보내다(“C:\newhtml.html”)
보내다("{입력하다}")

이와 같은 서비스: Java찾아보기 클릭 후 헬퍼를 실행합니다.

driver.findElement(By.id(“브라우즈Btn”)).딸깍 하는 소리();
런타임.getRuntime().exec(“C:\\AutoIt\\upload.exe”);

java.awt.Robot 클래스는 순수 로봇입니다.Java AutoIt을 사용할 수 없을 때 사용할 수 있는 대안이지만, AutoIt이 더 안정적입니다. Windows 제목으로 대화를 기다리기 때문입니다.

파일을 다운로드하는 방법 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 -PC: –no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe

Wget 설정

C 드라이브에 쓰는 데 문제가 있는 것 같습니다.

단계 4) wget 코드를 실행하기 전에 명령줄에서 wget 오류를 디버깅해야 합니다. Selenium WebDriver. 이러한 오류는 계속 발생합니다. Eclipse 오류 메시지가 그다지 도움이 되지 않을 것입니다. 먼저 명령줄을 사용하여 wget이 제대로 작동하는지 확인하는 것이 좋습니다. 명령줄에서 작동한다면 데스크톱에서도 확실히 작동할 것입니다. Eclipse.

예시에서 3단계에 나와 있듯이 C 드라이브에 쓰기 문제가 발생했습니다. 다운로드 위치를 D 드라이브로 변경하고 결과를 확인해 보겠습니다.

cmd /c C:\\Wget\\wget.exe -PD: –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 코드는 아래와 같습니다.

꾸러미 새로운 프로젝트;
import java.io.IO 예외;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.Firefox운전사;
공개 수업 PG8 {
공공 정적 무효 기본([] args) {

System.setProperty(“웹드라이버.게코.드라이버”,“C:\\geckodriver.exe”);
baseUrl = “https://demo.guru99.com/test/yahoo.html”;
웹드라이버 운전사 = Firefox운전사();

드라이버.get(baseUrl);
웹 요소 downloadButton = driver.findElement(By.id(“메신저 다운로드”));
sourceLocation = downloadButton.getAttribute(“href”);
wget_command = “cmd /c C:\\Wget\\wget.exe -PD: –no-check-certificate “ + 소스 위치;

시도 {
방법 exec = Runtime.getRuntime().exec(wget_command);
INT exitVal = exec.waitFor();
System.out.println(“퇴출 가치: “ + exitVal);
} 따라 (인터럽트된 예외 | IO 예외 전) {
System.out.println(ex.toString());
}
드라이버 닫기();
}
}

이 코드를 실행한 후 D 드라이브를 확인하고 Yahoo가 Messenger 설치 프로그램이 성공적으로 다운로드되었습니다.

WebDriver 및 Wget 사용

사용자 지정 다운로드 경로 설정하기 Selenium 4 CDP

Selenium 4는 Chrome 개발자 도구 프로토콜을 노출시켜 타사 도구 없이 브라우저 다운로드 동작을 제어할 수 있도록 합니다. 아래 코드 조각은 모든 다운로드를 사용자 지정 폴더로 지정하고 '다른 이름으로 저장' 메시지를 건너뛰므로 파일이 테스트에서 예상하는 위치에 저장됩니다.

ChromeDriver 운전사 = 크롬드라이버();
지도<,목적> 매개변수 = HashMap<>();
매개변수.put("행동", "허용하다");
매개변수.put(“다운로드 경로”, “D:\\selenium-downloads”);
드라이버.executeCdpCommand(“페이지.setDownloadBehavior”, 매개변수);
드라이버.get(“https://demo.guru99.com/test/yahoo.html”);
driver.findElement(By.id(“메신저 다운로드”)).딸깍 하는 소리();

다운로드가 완료되면 대상 디렉터리에서 예상 파일 이름과 파일 크기를 주기적으로 확인하여 검증할 수 있습니다. 이렇게 하면 외부 스크립트 없이도 결과를 확정적으로 확인할 수 있습니다.

자주 묻는 질문

Selenium sendKeys()를 호출합니다. 절대 파일 경로를 포함하는 요소입니다. 브라우저가 해당 필드를 직접 채우므로 운영체제 파일 선택기가 열리거나 찾아보기 버튼을 클릭할 필요가 없습니다.

페이지에 파일 입력란이 없는 경우 AutoIt을 사용하세요. Windows 또는 java.awt.Robot 클래스입니다. 이러한 도구는 찾아보기 버튼을 클릭한 후 활성 운영 체제 대화 상자에 경로를 입력하고 Enter 키를 누릅니다.

`executeCdpCommand(“Page.setDownloadBehavior”, params)`를 호출하고 동작을 허용으로 설정하고 `downloadPath`를 폴더로 설정하십시오. Selenium 4번은 명령을 Chrome 개발자 도구로 전달하고 "다른 이름으로 저장" 메시지를 건너뜁니다.

네. AI 어시스턴트는 업로드 양식을 읽고, 선택기를 제안하고, 빈 샘플, 크기가 너무 큰 샘플, 확장자가 잘못된 샘플과 같은 경계 파일을 생성하고, sendKeys() 블록을 작성합니다. 이를 통해 설정 시간을 단축하고 사람이 놓치기 쉬운 예외 상황을 찾아낼 수 있습니다.

인공 지능 도구 대상 폴더를 주기적으로 확인하고, 파일 크기와 체크섬을 예상 값과 비교하여 불일치를 표시합니다. 비전 모델은 PDF나 이미지를 열어 콘텐츠가 링크 레이블과 일치하는지 확인할 수도 있어 회귀 테스트 실행 시 수동 검토를 없앨 수 있습니다.

Wget은 브라우저를 완전히 우회하여 명령줄 프로세스를 통해 파일을 디스크에 직접 저장합니다. 이는 구형 시스템에서 유용합니다. Selenium CDP 및 ChromeOptions 다운로드 설정 옵션을 사용할 수 없는 2~3가지 설정입니다.

이 게시물을 요약하면 다음과 같습니다.