개요
학교 시스템을 이용하던 중 매번 예약하고 이용하는 과정이 매우 귀찮고 매번 신청하기 번거로워 한번 매크로를 만들어보고자 했습니다. 찾아보던 중 Python 라이브러리 중 Selenium이라는 것을 알게되었고 이후에 유튜브를 통해 공부하게 되었습니다
Selenium v4
이후 구글링을 하면서 찾아보던 중 셀레니움 버전 3에서는 크롬 엔진을 따로 설치하여 경로를 지정해준 뒤 사용했다면 이후 버전 4로 넘어가게 되면서 굳이 OS에 맞춰서 다운받을 필요 없이 라이브러리만 설치해서 실행시켜줌으로써 자동으로 web driver를 설치할 수 있도록 변경되었습니다
https://kibua20.tistory.com/228
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 |