inflearn logo
강의

講義

知識共有

[新規改訂版] これが本当のエクセル自動化だ - 基本編

Excelセルデータを自分の意思で扱う

네이버 메일 자동화 실습 문의

解決済みの質問

372

작성자 없음

投稿した質問数 0

0

 안녕하세요 네이버 메일 자동화 코드를 실행하면 메일 쓰기 버튼을 계속 찾지 못하고 있어 어떻게 수정하면 될지 문의드립니다.

메일함 이동까지는 정상적으로 되고 있으나 메일 쓰기 버튼만 찾지 못하고 있습니다.

 

코드는 다음과 같습니다.

from selenium.webdriver import ChromeOptions
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
import time
import pyperclip
import pyautogui
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

options = ChromeOptions()
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()), options=options)

driver.get('https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/')
driver.maximize_window() # 화면 최대화

# 아이디 입력창
id = driver.find_element(By.CSS_SELECTOR, '#id')
id.click()
pyperclip.copy('eooe5173')
pyautogui.hotkey('ctrl', 'v')
time.sleep(2)

# 비밀번호 입력창
passward = driver.find_element(By.CSS_SELECTOR, '#pw')
passward.click()
pyperclip.copy('ssw471395~')
pyautogui.hotkey('ctrl', 'v')
time.sleep(2)

# 로그인 버튼
driver.find_element(By.CSS_SELECTOR, '#log\.login').click()
time.sleep(5)

# 메일함으로 이동
mailbox = driver.find_element(By.CSS_SELECTOR,'#shortcutArea > ul > li:nth-child(1) > a').click()
time.sleep(5)

# 내게 쓰기 버튼
writeme_button =driver.find_element(By.CSS_SELECTOR, '#root > div > nav > div > div.lnb_header > div.lnb_task > a.item.button_write').click()

# 메일 제목 입력창 및 입력
mailname = driver.find_element(By.CSS_SELECTOR, '#subject_title').click()
pyperclip.copy('안녕하세요')
pyautogui.hotkey('ctrl', 'v')
time.sleep(5)

# 메일 내용 입력창 및 입력
mailinfo = driver.find_element(By.CSS_SELECTOR, '#body > div > div.workseditor-content').click()
pyperclip.copy('네이버 메일 자동화입니다.')
pyautogui.hotkey('ctrl', 'v')
time.sleep(5)

# 메일 저장
mailsave = driver.find_element(By.CSS_SELECTOR, '#content > div.mail_toolbar.type_write > div:nth-child(1) > div > button.button_write_task').click()
time.sleep(5)

에러는 동일하게 다음과 같이 노출되고 있습니다.

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"#root > div > nav > div > div.lnb_header > div.lnb_task > a.item.button_write"}

(Session info: chrome=123.0.6312.123)

Stacktrace:

GetHandleVerifier [0x00D14CA3+225091]

(No symbol) [0x00C44DF1]

(No symbol) [0x00AE9A7A]

(No symbol) [0x00B2175B]

(No symbol) [0x00B2188B]

(No symbol) [0x00B57882]

(No symbol) [0x00B3F5A4]

(No symbol) [0x00B55CB0]

(No symbol) [0x00B3F2F6]

(No symbol) [0x00B179B9]

(No symbol) [0x00B1879D]

sqlite3_dbdata_init [0x01189A43+4064547]

sqlite3_dbdata_init [0x0119104A+4094762]

sqlite3_dbdata_init [0x0118B948+4072488]

sqlite3_dbdata_init [0x00E8C9A9+930953]

(No symbol) [0x00C507C4]

(No symbol) [0x00C4ACE8]

(No symbol) [0x00C4AE11]

(No symbol) [0x00C3CA80]

BaseThreadInitThunk [0x764EFCC9+25]

RtlGetAppContainerNamedObjectPath [0x77DE7C5E+286]

RtlGetAppContainerNamedObjectPath [0x77DE7C2E+238]

python selenium openpyxl

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

최레기님의 네이버 메일 자동화와 관련하여 ‘메일 쓰기 버튼을 계속 찾지 못하고 있는 문제’에 대한 해결 방안을 제공해드리겠습니다.

이와 유사한 상황에 대한 해결책으로, 네이버 화면 변경으로 인해 새 탭에서 메일 창이 열리게 되어 기존 탭에서 요소를 찾지 못하는 문제와 관련된 포스트가 있습니다. 이 경우, 새로운 탭으로의 제어권 이동이 필요합니다. 새 탭에서 생성되는 네이버 메일에 대하여 파이썬 selenium을 사용하여 제어하는 창을 활성화 탭으로 옮기는 방법으로 아래와 같은 코드를 사용하실 수 있습니다:

driver.switch_to.window(driver.window_handles[-1])

위 코드를 메일함으로 이동하는 부분 이후에 추가함으로써, 새 탭에서의 “메일 쓰기” 버튼을 찾을 수 있게 해줍니다.

네이버 메일 자동화, 메일 창이 새탭에 생성에서는 유사한 문제에 대해 언급되어 있으니 해당 내용을 참조해보시는 것이 좋을 듯 합니다.

또한, “내게 쓰기 버튼”을 찾지 못하는 문제는 대상 웹 페이지의 요소가 변경되었거나, 페이지의 로딩 시간에 따라 해당 요소가 정상적으로 불러와지지 않았을 수 있습니다. 따라서 실제 화면에서 요소의 셀렉터가 변경되었는지 확인해 보시고, WebDriverWait을 활용해 특정 요소가 나타날 때까지 기다리는 로직을 추가하는 것도 하나의 해결책이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

선생님 셀에서 전체 실행은 어떻게하나요?

0

86

2

전자는 보안때매 안되나요?

0

150

2

보고서, 데이터, 계산서 자동 정리 프로그램 오류

0

208

1

사이트 접속 후 로그인 버튼 클릭 시 문제점

0

280

3

엑셀 파일 제목 중복되면 (1),(2) 씩 늘어나게 해서 생성하게 하기

0

407

1

엑셀 다루기 기초에서 날짜 1일씩 늘어나게 하기

0

847

1

크롬창이 자꾸 꺼져요!!

0

912

1

mouseInfo

0

284

1

pyautogui.mousInfo() 질문(영상 11:03)

0

221

2

pip명령이 vscode 명령프롬프트에서만 않되네요

0

4450

2

매출데이터 생성 price 오류

0

366

2

네이버 자동화 실습 관련 질의

0

448

1

pyautogui.center(pyautogui.locateOnScreen('wmp.PNG', grayscale=True, confidence=0.7)) 좌표 이상

0

538

2

블로그에 강의 코드를 정리해서 올려도 괜찮을까요??

0

408

1

Chrome version 116, Selenium version 4.11.2 이후

0

719

1

python upgrade 후 selenium 인식 불가

0

810

1

Google Chrome 업데이트 이후 크롬드라이브 실행 오류

0

2158

2

크롬드라이브 실행 오류

1

15385

4

오프라인 pip설치문의

0

1232

2

네이버 메일 자동화, 메일 창이 새탭에 생성

0

908

1

팝업 설명창?

0

419

1

셀레니움 기초 사용법

0

545

1

키보드 자동화_소문자 ko 입력 안되는 이유 질문 드려요

0

487

1

TypeError: 'module' object is not callable 이런 오류가 뜹니다

0

733

1