본문 바로가기

카테고리 없음

파이썬 Selenium을 이용해서 파일 업로드하기

Selenium을 이용하면 웹브라우저로 수행하는 여러 가지 작업을 자동화할 수 있습니다. 클릭, 검색, 로그인, 파일 업로드 등등의 처리를 모두 다룰 수 있습니다.

 

이번 포스팅에서는 파이썬의 셀레니움 라이브러리를 이용해서 파일을 업로드하는 방법을 알아보겠습니다. 

 

예제로 파일을 업로드 해볼 사이트는 무료 이미지 변환 사이트입니다. 로그인이 필요 없습니다.

https://convertio.co/kr/image-converter/

 

 

파일을 업로드하는 방법은 파일 입력란에 send_keys 메서드를 사용해서 업로드할 파일의 경로를 입력하면 됩니다. 말이 좀 복잡하니 코드로 살펴보겠습니다.

 

파일 선택을 가능하게 하는 input 태그 

<input type = "file"> 요소는 저장 장치에서 파일 선택할 수 있습니다. 속성(attribute)의 값에 따라 한 개 또는 여러 개의 파일을 선택할 수 있습니다. 이후 해당 내용을 제출하면 파일 업로드가 완료됩니다.

 

파일을 선택하는 과정은 사실 파일의 경로를 전달하는 과정입니다. 다시 말해 이 부분을 send_keys 메서드를 이용해서 파일 경로를 전달하는 코드를 작성하면 똑같은 결과를 기대할 수 있습니다.

 

예제로 다루고 있는 사이트를 크롬 브라우저에서 열어서, 개발자 도구를 이용해서 살펴보면 아래 사진과 같이 <input type = "file"> 요소를 찾을 수 있습니다.

 

 

이 웹페이지에 사진을 업로드 코드는 다음과 같습니다. 파일 경로는 알맞게 입력하면 됩니다.

 

# 라이브러리 임포트
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("https://convertio.co/kr/image-converter/")
driver.find_element_by_css_selector("input[type='file']").send_keys(r"C:\Users\user-pc\Desktop\test.PNG")

 

 

 

- 이 글은 아나콘다(Anaconda3)가 설치된  주피터 노트북에서 작성되었습니다.