반응형
파이썬 셀레니움 Selenium 파일 첨부 업로드
파이썬 셀레니움을 사용하여 파일을 첨부하는 방법에 대해서 설명합니다.
먼저 첨부하고자 하는 파일의 절대 경로를 체크합니다. 그리고 절대 경로를 통한 파일명을 가져와야 합니다.
a = r'E:\testimage\1.jpg'
b = r'E:\testimage\2.jpg'
c = r'E:\testimage\3.jpg'
이렇게 경로를 통한 파일명을 가져와서 셀레니움을 활용한 파일 업로드가 가능합니다.
네이버 메일창에서 파일 업로드를 한다고 했을 때 예시입니다. 파일 첨부 클래스는 보통 버튼 형태로 되어있습니다. 거기서 해당 클래스의 하위 요소들을 살펴보면 input으로 되어있는 요소를 찾을 수 있는데 이 요소를 타겟으로 업로드를 요청할 수 있습니다.
from selenium import webdriver
import chromedriver_autoinstaller
path = chromedriver_autoinstaller.install(True)
driver = webdriver.Chrome(path)
driver.implicitly_wait(5)
driver.get('https://www.naver.com/')
input('엔터 후 파일 첨부 실행!')
# 파일 첨부 클래스(여러개 한번에 업로드)
image_full_path = [r'E:\testimage\1.jpg', r'E:\testimage\2.jpg', r'E:\testimage\3.jpg']
image_path_txt = ' \n '.join(image_full_path) # 이미지 리스트 join
elm_img_1 = driver.find_element_by_id('ATTACH_LOCAL_FILE_ELEMENT_ID')
elm_img_1.send_keys(image_path_txt)
여러 장의 이미지를 첨부할 때는 \n(엔터)로 나눠서 send_key 전송을 시도하면 됩니다. 코드에서는 처음 로그인 후 메일창 접속까지 수동으로 진행하고 엔터를 입력하면 아래 코드가 실행이 되어 이미지가 첨부되는 것이죠. 만약 하나의 파일만 업로드하려면 str 형태로 절대 경로/파일명. 확장자까지만 send_key로 전송해주면 됩니다.
코드 실행 시 정상적으로 파일이 첨부되는 것을 확인할 수 있습니다.
반응형
'파이썬 프로그래밍' 카테고리의 다른 글
파이썬 url 웹사이트 exe 이미지 동영상 파일 다운로드 (Requests) (0) | 2022.12.10 |
---|---|
파이썬 pyqt5 설치 Qt Designer 사용법 및 ui py 파일 변환 (0) | 2022.12.04 |
파이썬 셀레니움 selenium 모바일 버전 브라우저 접속 (2) | 2022.11.27 |
파이썬 웹 스크래핑 크롤링 후 엑셀 데이터 저장 샘플 프로그래밍 (0) | 2022.10.31 |
파이썬 매크로 pyautogui 키보드 마우스 자동 제어 기능 (0) | 2022.10.02 |