반응형
ElementNotVisibleException은 요소가 화면에 보이지 않는 상태에서 상호작용을 시도할 때 발생하는 오류입니다. 예시 코드와 해결 방법에 대해 설명하겠습니다.
예시 코드:
아래 예시 코드는 요소가 화면에 보이지 않는 상황에서 ElementNotVisibleException이 발생할 수 있습니다.
from selenium import webdriver
driver = webdriver.Chrome('path/to/chromedriver')
# 요소가 보이지 않는 페이지 접속
driver.get('https://www.example.com')
# 보이지 않는 요소 클릭 시도
try:
invisible_button = driver.find_element_by_id('invisible-button')
invisible_button.click()
except ElementNotVisibleException as e:
print("요소가 보이지 않아 클릭할 수 없습니다.")
finally:
# 브라우저 종료
driver.quit()
해결 방법:
ElementNotVisibleException이 발생할 때, 다음과 같은 방법으로 해결할 수 있습니다.
요소가 보이도록 대기:
요소가 화면에 보이도록 기다린 후에 클릭하도록 합니다. WebDriverWait를 사용하여 요소가 보이도록 대기한 후에 클릭합니다.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome('path/to/chromedriver')
# 페이지 접속
driver.get('https://www.example.com')
# 요소가 보이도록 대기하고 클릭 시도
try:
invisible_button = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.ID, 'invisible-button'))
)
invisible_button.click()
except ElementNotVisibleException as e:
print("요소가 보이지 않아 클릭할 수 없습니다.")
finally:
# 브라우저 종료
driver.quit()
[Python/Selenium] - Selenium 웹 페이지 대기
스크롤하여 요소가 보이도록 만들기:
요소가 화면에 보이도록 스크롤링을 하여 클릭하려는 요소를 화면에 보이도록 합니다.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('path/to/chromedriver')
# 페이지 접속
driver.get('https://www.example.com')
# 스크롤하여 요소가 화면에 보이도록 만들기
try:
invisible_button = driver.find_element_by_id('invisible-button')
driver.execute_script("arguments[0].scrollIntoView(true);", invisible_button)
invisible_button.click()
except ElementNotVisibleException as e:
print("요소가 보이지 않아 클릭할 수 없습니다.")
finally:
# 브라우저 종료
driver.quit()
ElementNotVisibleException이 발생하는 경우 위의 방법 중 하나를 적절히 선택하여 예외를 처리하고, 프로그램이 안정적으로 동작하도록 합니다. 요소가 화면에 보이도록 대기하거나 스크롤하여 요소를 화면에 보이도록 하는 방법을 활용할 수 있습니다.
반응형
'Python > Selenium' 카테고리의 다른 글
파이썬 Selenium InvalidSelectorException 오류 (0) | 2023.08.17 |
---|---|
파이썬 Selenium WebDriverException 오류 (0) | 2023.08.16 |
파이썬 Selenium ElementClickInterceptedException 오류 (0) | 2023.08.14 |
파이썬 Selenium ElementNotInteractableException 오류 (0) | 2023.08.13 |
파이썬 Selenium StaleElementReferenceException 오류 (0) | 2023.08.12 |