직장인

[회사원] 업무 코딩기록 - (Selenium) 웹페이지 로그인, 사원검색

cyy1211 2024. 12. 26. 09:23
728x90
반응형
# selenium의 webdriver를 사용하기 위한 import
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager  # Chrome driver 자동 업데이트
import time

# 브라우저 꺼짐 방지
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)

# 불필요한 에러 메시지 노출 방지
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])

# Chrome driver Manager를 통해 크롬 드라이버 자동 설치
service = Service(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)

driver.implicitly_wait(5)  # 웹페이지 로딩 될 때까지 5초 대기
driver.maximize_window()  # 화면 최대화

# 크롬 드라이버에 url 주소 넣고 실행

# 페이지가 완전히 로딩되도록 2초동안 기다림
time.sleep(2)

# ID 창을 찾아 ID 변수에 저장 (xpath 이용방식: '//*[@id="TextUserID"]')
id_box = driver.find_element('xpath', '//*[@id="TextUserID"]')

# id 입력
id_box.send_keys('사번기입')

# pw 창을 찾아 search 변수에 저장 (xpath 이용방식)
pw_box = driver.find_element('xpath', '//*[@id="TextPassword"]')

# pw 입력
pw_box.send_keys('비번기입')
pw_box.send_keys(Keys.RETURN)
time.sleep(2)

# 해당 내부프레임으로 전환
frame = driver.find_element(By.ID, 'topFrame')  # 현재 html의 내부프레임 id는 topFrame
driver.switch_to.frame(frame)  # 해당 내부프레임으로 전환

# 이제 프레임 내부의 요소를 찾을 수 있습니다.
# 예를 들어, '교직원 검색 상자'를 찾는다고 가정하면:
search_box = driver.find_element(By.XPATH, '//*[@id="input_search"]')

# 검색어 입력
search_box.send_keys('사원이름')
search_box.send_keys(Keys.RETURN)
time.sleep(10)

# 웹페이지가 닫히지 않도록 사용자 입력 대기
input("웹페이지를 닫으려면 Enter 키를 누르세요...")

# 드라이버 종료 (선택적으로 사용)
driver.quit()


728x90
반응형