반응형

매번 까먹는 출근도장을 자동으로 찍을 수 있게 만들어보자.

방법은 파이선을 사용해 웹페이지 크롤링 하는 방식으로 진행하였다.

 

 

Slenium 및 WebDriver설치

 

터미널에

pip3 install selenium

 

autoLogin.py

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.webdriver.common.keys import Keys
import time

# 첫 번째와 두 번째 커맨드 라인 인자를 읽습니다.
# username = sys.argv[1]
# password = sys.argv[2]

driver = webdriver.Safari()
driver.get('https://flex.team/home')  # 웹페이지를 엽니다.

# 입력 필드가 로딩될 때까지 기다립니다.
email_field = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, 'radix-:r0:'))
)

# 입력 필드에 텍스트를 입력합니다.
email_field.send_keys('플렉스개인이메일아이디' + Keys.RETURN)

# 비밀번호 입력 필드가 로딩될 때까지 기다립니다.
password_field = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, 'radix-:rf:'))
)

# 비밀번호 입력 필드에 텍스트를 입력합니다.
password_field.send_keys('플렉스비밀번호' + Keys.RETURN)

time.sleep(10)

# ?? 사이드바 펼치기
# c-bIRrzL c-bIRrzL-dcxSjI-size-default c-bIRrzL-lbEVww-variant-ghost c-bIRrzL-ibjCwas-css
# c-bIRrzL c-bIRrzL-dcxSjI-size-default c-bIRrzL-lbEVww-variant-ghost c-bIRrzL-ibjCwas-css
button0 = WebDriverWait(driver, 20).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, '.c-bIRrzL.c-bIRrzL-dcxSjI-size-default.c-bIRrzL-lbEVww-variant-ghost.c-bIRrzL-ibjCwas-css'))
)
button0.click()

time.sleep(3)

# ?? 근무시작버튼 클릭
button1 = WebDriverWait(driver, 20).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, '.c-bIRrzL.c-gNtnBi.c-bIRrzL-glaMVD-size-default.c-bIRrzL-duTMEK-variant-outline.c-bIRrzL-icJWhYr-css.c-toRGo'))
)
button1.click()

time.sleep(3)

# ?? 사무실근무 버튼 클릭
button2 = WebDriverWait(driver, 20).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, '.c-eECIIA'))
)
button2.click()

time.sleep(3)

# ?? 근무 시작 클릭
button3 = WebDriverWait(driver, 20).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, '.c-eTLAUT'))
)
button3.click()

time.sleep(3)

driver.quit()

 

단독 실행파일로 만들기

pyinstaller 설치

터미널에

pip3 install pyinstaller

 

pyinstaller설치후에 zsh문제로 설치가 되어있지 않다고 한다면

open -e ~/.zshrc

 

아래 줄 추가 후 파일 저장 (이부분은 설치위치에 따라 달라짐)

export PATH="/Users/Name/Library/Python/3.9/bin:$PATH"

 

터미널을 닫고 다시 열어

source ~/.zshrc

 

버전확인

pyinstaller --version

 

단독파일로 만드는 명령어 (뒤에 파일 경로를 맞춰줘야 할 수도 있음)

sudo pyinstaller --onefile --windowed autoLogin.py

변환된 애플리케이션은 /Users/Name/Library/Python/3.9/lib/python/site-packages/my_script/dist/ 폴더 안에 생성

 

 

컴터켤때 실행파일이 자동으로 실행되게 하기

 

System settings > General > Login Items 로 진입

Open at Login 해당 추가

반응형

+ Recent posts