본문 바로가기
Python/Python_Crawling

셀레니움 : 파일업로드

by Mr.DonyStark 2024. 1. 19.

□ 주 사용 라이브러리

  ○ 셀레니움

  ○ 셀레니움 > 웹드라이버 > 키

  ○ 셀레니움 > 웹드라이버 구동

  ○ 셀레니움 > 웹드라이버 > 옵션 라이브러리

  ○ 타임지정

from selenium import webdriver
from selenium.webdriver.chrome.options import Options  #크롬 자동방지 등 옵션 활용 라이브러리
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains #마우스 커서관련 라이브러리
from selenium.webdriver.common.keys import Keys   #값입력시 활용 라이브러리
import time    #실행 후 대기시간 라이브러리

 

□ 주 사용 함수

  ○ 드라이버 구동 : .webdriver.Chrome( )
  ○ 생성창 최대크기 : .maximize_window()
  ○ 생성창 크기지정 : .set_window_size(가로,높이)
  ○ 생성창 위치좌표 : .set_window_position(행위치, 열위치)
  ○ 타겟 주소 지정함수 : .get('주소')
  ○ id value를 활용한 값 입력 : .find_element(by='id', value='값').send_keys(입력값)
  ○ id value를 활용한 클릭 : .find_element(by='id', value='값').click()

  ○ x-path를 활용한 클릭 : .find_element(By.XPATH, value = 'xpath 값').send_keys(입력값)

  ○ x-path를 활용한 파일/텍스트 입력 : .find_element(By.XPATH, value = 'xpath 값').click() 

  ○ Css 셀렉터를 활용한 파일/텍스트 입력 :  .find_element(By.CSS_SELECTOR , value = '#file-upload'

 

#필요라이브러리 추출
from selenium import webdriver
from selenium.webdriver.chrome.options import Options  #크롬 자동방지 등 옵션 활용 라이브러리
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains #마우스 커서관련 라이브러리
from selenium.webdriver.common.keys import Keys   #값입력시 활용 라이브러리
import time    #실행 후 대기시간 라이브러리

# 브라우저 자동 꺼짐옵션지정
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)

# 드라이버 구동
core_driver = webdriver.Chrome(options=chrome_options)

# 웹창 사이즈
core_driver.set_window_size(800,1200)  #생성창 크기 커스터마이징 : set_window_size(가로길이, 높이길이)
core_driver.set_window_position(1000, 0)  #행위치, 열위치)

# 접속 페이지 지정
core_driver.get('https://the-internet.herokuapp.com/upload')
print('■■■■■■■■■■■■■■■■■ 접속완료')
time.sleep(4)


# 액션 : 파일 업로드
core_driver.find_element(By.CSS_SELECTOR , value = '#file-upload').send_keys("C:/python/screent_shot/injick.jpg")
print('■■■■■■■■■■■■■■■■■ 업로드완료')
time.sleep(2)

# 액션 : 클릭
core_driver.find_element(By.XPATH, value = '//*[@id="file-submit"]').click()
print('■■■■■■■■■■■■■■■■■ 버튼클릭 완료')
time.sleep(2)

core_driver.quit()
print('■■■■■■■■■■■■■■■■■ 셀레니움 종료')