• 카테고리

    질문 & 답변
  • 세부 분야

    업무 자동화

  • 해결 여부

    미해결

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

24.01.12 10:32 작성 24.01.12 10:42 수정 조회수 139

0

 Copy Selector를 이용하여 받는사람 구역의 Selector를 복사해서 가져왔으나 코드 실행 중 에러가 발생합니다. no such element라는 것으로 보아 Selector를 못받는거 같은데 어떻게 해야될까요?

driver.find_element(By.CSS_SELECTOR,"#recipient_input_element").send_keys("xxxx@naver.com")

time.sleep(0.5)Traceback (most recent call last):File "c:\Excel\02. 데스크탑 자동화\2.네이버 로그인 자동화.py", line 44, in <module>driver.find_element(By.CSS_SELECTOR,"#recipient_input_element").send_keys("xxxx@naver.com")^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\thkim\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 742, in find_elementreturn self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\thkim\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 348, in executeself.error_handler.check_response(response)File "C:\Users\thkim\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_responseraise exception_class(message, screen, stacktrace)selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"#recipient_input_element"}(Session info: chrome=120.0.6099.217); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exceptionStacktrace:GetHandleVerifier [0x00007FF675932142+3514994](No symbol) [0x00007FF675550CE2](No symbol) [0x00007FF6753F76AA](No symbol) [0x00007FF675441860](No symbol) [0x00007FF67544197C](No symbol) [0x00007FF675484EE7](No symbol) [0x00007FF67546602F](No symbol) [0x00007FF6754828F6](No symbol) [0x00007FF675465D93](No symbol) [0x00007FF675434BDC](No symbol) [0x00007FF675435C64]GetHandleVerifier [0x00007FF67595E16B+3695259]GetHandleVerifier [0x00007FF6759B6737+4057191]GetHandleVerifier [0x00007FF6759AE4E3+4023827]GetHandleVerifier [0x00007FF6756804F9+689705](No symbol) [0x00007FF67555C048](No symbol) [0x00007FF675558044](No symbol) [0x00007FF6755581C9](No symbol) [0x00007FF6755488C4]BaseThreadInitThunk [0x00007FFA3FB2257D+29]RtlUserThreadStart [0x00007FFA40FEAA58+40]

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.13

안녕하세요, 인프런 AI 인턴입니다.
saurabi8님, ‘no such element’ 예외는 드라이버가 CSS 선택자로 해당 요소를 찾지 못할 때 발생합니다.

문제를 해결하기 위한 몇 가지 방법을 제시드리겠습니다.
1. 대기 시간 설정: 웹 페이지가 완전히 로드되기 전에 요소를 찾으려 할 수 있어요. 페이지가 완전히 로드될 때까지 기다리는 WebDriverWait을 활용해 보세요.

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#recipient_input_element")))
element.send_keys("xxxx@naver.com")
  1. 정확한 선택자 확인: 개발자 도구를 이용하여 선택자가 정확한지 다시 한 번 확인하세요. ‘recipient_input_element’가 정확한 id인지, 해당 요소가 iframes 내부에 위치해 있지 않은지 체크해볼 필요가 있습니다.

  2. 프레임 전환: 해당 요소가 iframe 내부에 있을 경우, driver.switch_to.frame() 메서드를 사용하여 해당 프레임으로 전환한 후 요소를 찾아야 합니다.

위의 방법들을 시도해 보시고, 여전히 문제가 해결되지 않는다면, 페이지의 구조가 바뀌었거나 해당 요소에 다른 id 혹은 클래스가 사용되었을 수 있습니다. 이 경우 다시 한 번 웹 페이지를 검사하여 올바른 선택자를 사용하고 있는지 확인해보세요.

도움이 되셨길 바랍니다!

AI 인턴의 답변대로 한번 시도해보고 안되면 말씀해 주세요!