하이어시스템 소개
오늘은 셀레니움에서 파일 드래그 앤 드랍을 구현하는 방법에 대해서 알아보도록 하겠습니다.
물론 클릭 이벤트를 발생시키고 파일 팝업창에서 pyautogui 모듈을 통해서 파일명을 입력하는 방식으로도 구현할 수 있습니다. 그 외에도 다양한 방법이 있을겁니다. 하지만 이런 방식들은 셀레니움의 장점인 물리적 마우스와 키보드를 사용하지 않고 크롬드라이버 내부에서 이벤트가 발생한다는 장점을 포기해야 합니다. 자동화 프로그램이 수행되는 동안 간단한 작업이라도 할 수 있다면 사용자에게 큰 편의성를 제공할 수 있습니다.
생각보다 셀레니움으로 드래그 앤 드랍을 구현하는 건 아주 간단한 작업입니다. 예시로 설명드리겠습니다.
1. 유튜브 동영상, 쇼츠(shorts) 업로드 셀레니움 코드 작성 예제
아래 이미지는 유튜브에서 동영상을 업로드 하는 단계의 화면입니다.
이를 개발자 모드에서 열어 본 후 input tag를 찾는것이 핵심입니다.
파일 선택 엘리먼트 또는 파일 드래그 앤 드랍존 인근에서 input tag를 찾습니다. type이 file이고 name이 Filedata인 엘리먼트가 보이네요. 파일 드래그 앤 드랍에 이용되는 html로 예상됩니다.
그럼 셀레니움에서 다음과 같이 코드를 작성하면 됩니다.
drag_and_drop_zone = driver.find_element(By.XPATH, '//input[@name="Filedata"]')
drag_and_drop_zone.send_keys(file_path)
2. 네이버 블로그 코드 작성 예제
이번엔 네이버 블로그를 한번 살펴보도록 하겠습니다.
처음에는 input 태그를 찾을 수 없습니다. 하지만 사진 버튼을 클릭을 하고 나면 input tag가 생성됨을 확인할 수 있습니다.
물론 이 경우엔는 파일 업로드를 위한 다이얼로그를 띄우고 다시 닫아야 하는 불편함은 있습니다. 하지만 파일 다이얼로그를 생성하지 않으면 input tag를 생성할 수 없기에 여기까지는 진행하고, 이후 "pyautogui 를 이용해서 파일명을 타이핑하고 엔터를 치는 스크립트는 자동화 프로그램의 안정성에 좋지 않으므로" 최대한 셀레니움으로 작성해주는것이 좋습니다.
drag_and_drop_zone = driver.find_element(By.XPATH, '//input[@id="hidden-file"]')
drag_and_drop_zone.send_keys(file_path)
'파이썬코드공유' 카테고리의 다른 글
Selenium ActionChains - 보다 확실한 동작 수행이 필요할 때 (0) | 2023.09.02 |
---|---|
AskUp 이용하여 OCR 문자인식 프로그램 만들기 (0) | 2023.08.28 |
구글 시트 API 연결하기 (0) | 2023.08.07 |
셀레니움 find_element XPath 완벽 해설 (0) | 2023.08.04 |
Selenium Waits Explicit Implicit 명시적대기 암묵적대기 (0) | 2023.08.04 |