Selenium

[Selenium] 엑셀 파일 읽기/쓰기

MASSO 2023. 1. 21. 01:08
728x90

openpyxl 이용해보기..... 미리 설치 필요!!
인데 익숙해지기까지 시간이 좀 많이 필요할 것 같다.
 

import selenium
import pyperclip
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from openpyxl import load_workbook

openpyxl로 미리 만들어둔 엑셀 파일을 load해줄 것이다.

chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=chrome_options)
driver.maximize_window()
url = "URL.com"
driver.get(url)
time.sleep(2)

driver.find_element(By.XPATH,'//*[@id="__next"]/section[2]/div[2]/div/div[2]/button[2]').click()
time.sleep(1)
driver.find_element(By.XPATH,'//*[@id="__next"]/section/header/div[2]/div[2]/button').click()
time.sleep(3)

로그인 스크립트

wb = load_workbook('..\\testData\\logindata.xlsx')
ws = wb['Sheet1']

driver.find_element(By.XPATH,'//*[@id="loginid"]').click()
#print(ws['A2'].value)
amoreid = (ws['A2'].value)
pyperclip.copy(amoreid)
driver.find_element(By.XPATH,'//*[@id="loginid"]').send_keys(Keys.CONTROL + 'v')
time.sleep(2)

driver.find_element(By.XPATH,'//*[@id="loginpassword"]').click()
amorepw = (ws['B2'].value)
pyperclip.copy(amorepw)
driver.find_element(By.XPATH,'//*[@id="loginpassword"]').send_keys(Keys.CONTROL + 'v')
time.sleep(2)

driver.find_element(By.XPATH,'//*[@id="wrap"]/section/div[2]/form/div[4]/span/label').click()
time.sleep(1)
driver.find_element(By.XPATH,'//*[@id="dologin"]').click()
time.sleep(3)

엑셀 파일 불러온 후 작업할 시트 선택
엑셀 내 값을 불러와 amoreid/amorepw 값에 넣어주고 로그인 버튼을 선택하는 과정이다.
* 엑셀 파일이 파이썬 스크립트와 다른 폴더에 있는 경우 저렇게 위치까지 지정해줘야 한다.

maintitle = driver.title
if maintitle == "타이틀":
    ws['C2'] = "PASS"
#    print("PASS")

else:
    ws['C2'] = "FAIL"
#    print("FAIL")

wb.save('..\\testData\\logindatare.xlsx')

if문을 사용하여 PASS/FAIL 여부를 판단하고 엑셀 파일 내에 P/F 값을 넣어주는 과정이다.
save를 넣지 않으면 엑셀 파일에 저장이 되지 않는다! 그리고 동일한 파일명 입력 시 덮어쓰기!!된다.
* 주석 처리한 부분은 모두 테스트용도로 입력했던 부분이기에 무시해도 됨..ㅎㅎ
 
여기까지 작성하고 실행시켜보면

이렇게 testData 폴더 내에 실행 결과가 담겨있는 logindatare.xlsx이라는 엑셀 파일이 생성된다.

파일을 열어보면 Result(C2)에 PASS라는 결과가 출력됐음을 볼 수 있다.
(D열의 '정상'은 기대 결과를 미리 적어둔 것이다.)

728x90

'Selenium' 카테고리의 다른 글

[Selenium] 실험1  (0) 2023.09.09
[Selenium] 크롬 창 종료 현상?  (0) 2023.06.16
[Selenium] 뮤트하기  (0) 2023.01.08
[Selenium] 값 비교  (0) 2023.01.05
[Selenium] 타이틀 비교  (0) 2023.01.04