파이썬

파이썬 셀레니움에서 엘리먼트 존재 여부 확인하는 방법

파이썬-셀레니움-엘리먼트-존재여부

파이썬 셀레니움은 웹 자동화와 스크래핑을 하기 편한 도구입니다. 스크래핑 도중 원하는 엘리먼트가 없으면 에러가 발생하는데요. 이 때 엘리먼트가 있는지 확인하면 좋습니다.

이 포스팅에서는 셀레니움을 사용해 엘리먼트의 존재 여부를 감지하는 여러 가지 방법을 알아보겠습니다. 상황에 맞는 최적의 방법을 사용해보세요.


find_element 함수로 존재 여부 확인

셀레니움을 사용하여 웹 자동화를 할 때, 특정 웹 페이지 요소가 존재하는지를 확인할 필요가 있습니다. 셀레니움에서 엘리먼트를 찾는 기본적인 방법은 find_elements 함수 이용이빈다. 이 메서드는 주어진 요소가 존재하면 그 요소의 리스트를 반환하고, 그렇지 않으면 빈 리스트를 반환합니다.

엘리먼트 존재 여부를 확인하기 위해, 드라이버 객체를 통해 특정 조건에 맞는 요소들을 조회하면 됩니다. 리스트로 반화되고, 반환된 리스트가 비어 있는지 확인합니다. 이 방법은 특정 요소의 존재 여부를 빠르게 확인할 때 유용합니다. 웹 페이지에서 작업하기 전에 해당 엘리먼트가 있는지 체크할 수 있습니다.

따라서 driver.find_elements(By.CLASS_NAME, “dragon”) 또는 driver.find_elements(By.CSS_SELECTOR, “.dragon”)과 같은 메소드를 사용해 특정 엘리머트 존재 여부를 확인할 수 있습니다. 이 방법은 웹 페이지가 로드되는 중간에도 엘리먼트 존재여부를 파악합니다.

from selenium.webdriver.common.by import By

elements_lst = driver.find_elements(By.CSS_SELECTOR, ".dragon")
len(elements_lst)>0

예외 처리로 존재 여부 확인

셀레니움을 사용하여 웹 페이지의 특정 엘리먼트 존재 여부를 확인할 때 흔히 사용하는 방법 중 하나입니다. 셀레니움은 엘리먼트를 찾을 수 없을 때 NoSuchElementException을 발생시킵니다. 따라서 이를 이용하여 엘리먼트 존재 여부를 확인합니다.

아래 코드에서처럼 try-except 블록을 사용하여 엘리먼트를 찾아봅니다.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException

# 웹 드라이버 설정 (예: Chrome)
driver = webdriver.Chrome()

# 특정 웹사이트로 이동
driver.get('https://naver.com')

try:
    # 엘리먼트를 찾으려고 시도
    element = driver.find_element(By.ID, 'example-id')
    print("엘리먼트가 존재합니다.")
except NoSuchElementException:
    print("엘리먼트가 존재하지 않습니다.")

이 코드에서는 find_element 함수를 사용해 ID가 “example-id”인 엘리먼트를 찾으려고 합니다. 만약 엘리먼트가 존재하지 않는다면 NoSuchElementException이 발생합니다. 이 경우 “엘리먼트가 존재하지 않습니다.”라는 메시지를 출력합니다. 해당 방법은 ID뿐만 아니라 다른 선택자를 사용해도 동일하게 적용할 수 있습니다.

이러한 방법은 특정 엘리먼트의 존재 여부를 효율적으로 확인할 수 있는 방법 중 하나입니다. 주로 웹 페이지의 구조가 동적으로 변하는 경우에 유용하게 활용됩니다. 그러나 엘리먼트를 찾는 작업은 브라우저와 서버 간의 통신을 동반하므로 시간이 소요될 수 있습니다. 페이지에 있는데, 아직 페이지를 다 불러오지 않았기 때문에 찾을 수 없는 경우가 있습니다. 이런 경우 효율성을 높이기 위해 WebDriverWait와 같은 다른 방법을 고려해봐도 좋습니다.


파이썬 셀레니움을 이용해 엘리먼트 존재 여부를 판단하는 방법은 다양합니다. find_elements, 예외 처리 등 다양한 기법을 활용해 더 정확하고 효율적으로 웹 스크래핑을 할 수 있습니다. 최적의 방법을 적용하면 웹 자동화 과정에서 시간과 자원을 절약할 수 있고, 결과의 신뢰성을 높일 수 있습니다. 실습을 통해 이러한 방법을 직접 적용해 보세요.


함께 읽으면 좋은 글


테리엇

Share
Published by
테리엇

Recent Posts

홍진경 사업, 매출 3100억 CEO의 성공 비결과 ‘남는 게 없다’는 속사정

방송인 홍진경을 떠올리면 이제는 '개그·예능'만큼이나 '매출 3100억 김치 CEO'라는 수식어가 따라붙습니다. 2026년 7월 기준으로 다시…

2일 ago

허경환 유행어, 궁금하면 500원이 터지기까지 걸린 5년

"궁금하냐? 궁금하면 500원." 2026년 7월 현재까지도 계산대 앞이나 단체 대화방에서 반사적으로 튀어나오는 이 한 줄은,…

1주 ago

허경환 라면 광고 모델, 놀면뭐하니 라면 겸상 불가 부른 이 라면의 정체는?

7월 11일 방송된 MBC '놀면 뭐하니?' 337회 '쩐의 전쟁 in 구미' 편에서 허경환이 갓 튀긴…

1주 ago

아이폰 폴드 가격·출시일 유출 총정리, 2000달러 접는 아이폰 살까?

"아이폰도 접힌다던데, 이번엔 진짜인가?" 몇 년째 반복되던 소문에 반신반의하셨다면, 2026년 들어 분위기가 왜 달라졌는지부터 확인하실…

2주 ago

도쿄 헬기투어 가격과 코스, 후지산까지 90분이면 보입니다

도쿄에 또 가나요? 도쿄타워 전망대도, 시부야 스크램블 교차로도, 아사쿠사 센소지도 이미 본 분들이라면 다음 카드로…

2개월 ago

김세의 프로필, 가로세로연구소 대표 구속까지 전말 정리

1. 김세의, 2026년 5월 26일 구속이라는 분기점 김세의 가로세로연구소 대표가 2026년 5월 26일 서울중앙지법에서 구속됐습니다.…

2개월 ago