[python Auto] - gmail 자동으로 보내기 #1
2020. 2. 28. 16:43ㆍPython/Automation
반응형

[날짜]
20 - 02 - 28
[내용]
gmail 보내기 자동화 프로젝트입니다.
[전체코드]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from selenium import webdriver | |
from selenium.webdriver.common.keys import Keys | |
from selenium.webdriver.common.action_chains import ActionChains | |
import time | |
driver = webdriver.Chrome() | |
url = 'https://www.google.com' | |
driver.get(url) | |
# 창을 크게 만듬 | |
# driver.maximize_window() | |
# 엑션체인으로 driver 조작 | |
action = ActionChains(driver) | |
# 로그인 버튼의 id값(gb_70) 클릭 // id는 #, class는 . 으로 구분 | |
driver.find_element_by_css_selector('#gb_70').click() | |
# 커서가 바로 로그인 하는 곳을 가르키기 때문에 바로 엑션을 취함 | |
# - send_keys로 데이터를 보내고 perform으로 동작 | |
# - reset_action은 밑에 있는 다른 action을 위해 초기화 해줌 | |
# - 다음 버튼(.Cwak9)을 클릭 | |
# - 로그인 동안 대기시간 2초 | |
action.send_keys('id').perform() | |
time.sleep(2) | |
action.reset_actions() | |
time.sleep(2) | |
# action.reset_actions() | |
driver.find_element_by_css_selector('.CwaK9').click() | |
time.sleep(5) | |
# 비밀번호를 입력 | |
# - 커서를 위치하기 위해 비밀번호 창의 클레스 값에 비밀번호 입력 | |
# - 다음 버튼 누르고 | |
# - 로그인을 위해 2초 대기 | |
driver.find_element_by_css_selector('.whsOnd.zHQkBf').send_keys('passward') | |
driver.find_element_by_css_selector('.CwaK9').click() | |
time.sleep(5) | |
# 이메일 보내기 위해 메일 링크로 들어감 | |
driver.get('https://mail.google.com/mail/u/0/?ogbl#inbox') | |
time.sleep(5) | |
# 이메일 쓰기 버튼의 클레스를 찾아서 클릭 | |
driver.find_element_by_css_selector('.T-I.J-J5-Ji.T-I-KE.L3').click() | |
time.sleep(5) | |
send_button = driver.find_element_by_css_selector('.T-I.J-J5-Ji.aoO.v7.T-I-atl.L3') | |
mail_button = driver.find_element_by_css_selector('.wO.nr') | |
# () 으로 묶어주면 1줄처럼 파악함 | |
( | |
action.send_keys('@gmail.com') #오류 부분 | |
.key_down(Keys.TAB).pause(1).key_down(Keys.TAB).pause(2) # 받는 사람을 적고 TAB 2번 누르기 | |
.send_keys('제목입니다.').pause(2).key_down(Keys.TAB).pause(2) # 제목 입력 부분 탭으로 다음칸 | |
.send_keys('abcde').pause(2).key_down(Keys.ENTER) # 내용 입력 부분 | |
.key_down(Keys.SHIFT).send_keys('abcd').key_up(Keys.SHIFT).pause(2) # Key_down은 up을 해주기 전까지 눌러줌 | |
.move_to_element(send_button).click() | |
.perform() # 실행 | |
) |
[만들면서..]
- selenium을 활용한 웹 자동화 프로젝트입니다.
- html을 분석하여 id, class 값을 찾아 조작합니다.
- error ) action.reset_actions() 로 끊어주는 부분이 제대로 동작하지 않습니다.. 중복된 이메일 값이 들어갑니다.
반응형