개요

학교 시스템을 이용하던 중 매번 예약하고 이용하는 과정이 매우 귀찮고 매번 신청하기 번거로워 한번 매크로를 만들어보고자 했습니다. 찾아보던 중 Python 라이브러리 중 Selenium이라는 것을 알게되었고 이후에 유튜브를 통해 공부하게 되었습니다

 

 

Selenium v4

이후 구글링을 하면서 찾아보던 중 셀레니움 버전 3에서는 크롬 엔진을 따로 설치하여 경로를 지정해준 뒤 사용했다면 이후 버전 4로 넘어가게 되면서 굳이 OS에 맞춰서 다운받을 필요 없이 라이브러리만 설치해서 실행시켜줌으로써 자동으로 web driver를 설치할 수 있도록 변경되었습니다

 

https://kibua20.tistory.com/228

 

Selenium 4.0 개선 사항 정리 - WebDriver 자동 로딩 가능

이전 포스팅에서 설명한 Web Crawling 방법에서 사용했던 Selenium이 3.0 버전에서 4.0으로 업그레이드 되었습니다. Selenium 3.0 버전 대비 4.0에서 가장 큰 개선 사항은 OS 별(Windows, Unbuntu, MacOS), Broswe..

kibua20.tistory.com

 

 

code

이 외에도 변경점으로는 elemnet를 찾을 때 find_elements_by_함수를 사용한 반면 버전 4에서는 따로 selenium에서 by라는 검색 변수를 가져오면서 동작시키게 됩니다.

 

아래는 간단한 네이버에서 로그인 시킬 수 있도록 만든 코드이며 이후 계속 포스트를 추가해 나갈 예정입니다

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By


# selenium3, 4

options = Options()
options.add_experimental_option('detach', True) # 브라우저 바로 닫힘 방지
options.add_experimental_option("excludeSwitches", ['enable-logging']) # 불필요한 메시지 제거


print(options)

service = Service(ChromeDriverManager().install())

driver = webdriver.Chrome(service=service, options=options)
# 보통 크롬드라이버를 맞춰서 다운 받은 뒤 실행시킨다 하지만 이렇게하면 계속 버전에 맞춰 다운을 받아줘야함
# 이때 사용할 수있는게 webdriver manager이다
# 버전업이 되더라도 진행된다

driver.get("주소")
driver.implicitly_wait(time_to_wait=1)

driver.find_element(By.ID, "id").send_keys("id")
driver.find_element(By.ID, "pass").send_keys("password")

 

 

 

참고 영상

https://www.youtube.com/watch?v=zRKm0BkzSM8 

 

 

'TIL > 개념정리' 카테고리의 다른 글

함수와 함수호출, 고차함수에서의 호출  (0) 2022.10.23
스코프 , 스코프체인 , 클로저  (0) 2022.10.02
Docker에 대해서  (0) 2022.09.07
NextJS 간단 정리  (2) 2022.09.06
Throttle과 debounce를 사용해보고 정리  (0) 2022.08.24
복사했습니다!