파이썬

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

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

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

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


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

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

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

1주 ago

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

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

1주 ago

군체 정보 | 개봉 5일 만에 200만, 연상호가 만든 새 좀비의 정체

연상호 감독의 신작 영화 '군체'가 2026년 5월 21일 개봉 후 단 5일 만에 누적 관객…

2주 ago

에리카 윤 스미스 프로필, 서울 출생 25세 KLPGA 교포 신예

2026 KLPGA 투어 개막전인 리쥬란 챔피언십 미디어데이 사진을 본 분이라면 한 가지 의문이 드셨을 겁니다.…

2주 ago

정지원 아나운서 프로필, 남편·학력·발음 논란 한눈에

1. KBS 정지원 아나운서, 요즘 어디서 만나볼 수 있을까요 아침마다 KBS 2TV를 켜면 익숙한 얼굴이…

2주 ago

김아현(해초) 활동가 프로필, 이스라엘 2번 나포된 27세 여성의 정체

2026년 5월 22일 새벽, 인천국제공항 1터미널 입국장에 검은 티셔츠와 청바지 차림의 한 청년이 모습을 드러냈습니다.…

2주 ago