AutoPercenty/login.py

101 lines
3.8 KiB
Python

# 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)