# from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException # from config import WEBSITE_URL from utils import log import time import logging # 로거 인스턴스 가져오기 logger = logging.getLogger('default_logger') def login(driver, login_info): """로그인 프로세스를 수행합니다.""" # login_info에서 로그인 정보 추출 per_email = login_info["per_email"] per_password = login_info["per_password"] per_em_email = login_info["per_em_email"] per_em_password = login_info["per_em_password"] per_mode = login_info["per_mode"] logger.debug("웹사이트에 접속 중...") driver.get("https://www.percenty.co.kr") # time.sleep(1) logger.debug("로그인 버튼 클릭...") # login_button = driver.find_element(By.CSS_SELECTOR, ".signList > .ant-btn-default > span") # login_button.click() try: login_button = WebDriverWait(driver, 30).until( EC.presence_of_element_located((By.CSS_SELECTOR, ".signList > .ant-btn-default > span")) ) login_button.click() except TimeoutException: logger.debug("로그인 버튼을 찾는데 실패했습니다.") # try: # login_button = WebDriverWait(driver, 30).until( # EC.presence_of_element_located((By.CSS_SELECTOR, ".signList > .ant-btn-default > span")) # # EC.presence_of_element_located(By.XPATH, "//div[@id='root']/div/div/header/div/div/div/button[2]/span") # ) # login_button.click() # except: # logger.debug("로그인 중 오류 발생: 요소를 찾을 수 없습니다.") time.sleep(1) logger.debug("이메일 주소 입력...") try: email_input = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, ".ant-input:nth-child(4)")) ) email_input.send_keys(per_email) except: logger.debug("이메일 주소 찾는 중 오류 발생: 요소를 찾을 수 없습니다.") # email_input = driver.find_element(By.CSS_SELECTOR, ".ant-input:nth-child(4)") time.sleep(0.1) if per_mode: logger.debug("사용자 패스워드 입력...") password_input = driver.find_element(By.CSS_SELECTOR, ".ant-input:nth-child(1)") password_input.send_keys(per_password) time.sleep(0.1) else: logger.debug("스위치 버튼 클릭...") switch_button = driver.find_element(By.CSS_SELECTOR, ".ant-switch-handle") switch_button.click() time.sleep(0.1) logger.debug("직원 아이디 입력...") employee_id_input = driver.find_element(By.CSS_SELECTOR, ".ant-input:nth-child(2)") employee_id_input.send_keys(per_em_email) time.sleep(0.1) logger.debug("직원 패스워드 입력...") password_input = driver.find_element(By.CSS_SELECTOR, ".ant-input:nth-child(1)") password_input.send_keys(per_em_password) time.sleep(0.1) logger.debug("로그인 버튼 클릭...") login_button = driver.find_element(By.CSS_SELECTOR, ".ant-btn-primary") login_button.click() time.sleep(2) # 신규 상품 등록 페이지로이동 logger.debug("신규상품등록 버튼 클릭...") try: new_product_button = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.XPATH, "//span[contains(.,'신규 상품 등록')]")) ) except: logger.debug("신규상품등록 버튼 찾는 중 오류 발생: 요소를 찾을 수 없습니다.") # new_product_button = driver.find_element(By.XPATH, "//span[contains(.,'신규 상품 등록')]") new_product_button.click() time.sleep(2)