본문 바로가기
Python/Selenium

Selenium MoveTargetOutOfBounds 오류 해결하기

by PySun 2025. 2. 10.
반응형

소개

Selenium을 사용하여 웹 자동화를 진행하다 보면 'MoveTargetOutOfBounds' 오류가 발생할 수 있습니다. 이 오류는 Selenium이 마우스 커서를 특정 요소로 이동하려고 할 때, 해당 요소가 뷰포트 밖에 있을 경우 발생합니다. 이 포스트에서는 이 오류의 원인과 해결 방법을 다루어 보겠습니다.

에러 발생 예시 코드

다음은 'MoveTargetOutOfBounds' 오류가 발생할 가능성이 있는 간단한 Selenium 코드입니다.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

# 웹 드라이버 초기화
driver = webdriver.Chrome()
driver.get("http://example.com/")  # 예시 웹사이트 URL

# 이동할 요소 찾기
element = driver.find_element(By.ID, "not-visible-element")  # 뷰포트 밖의 요소

# 마우스 커서를 요소로 이동
actions = ActionChains(driver)
actions.move_to_element(element).perform()

에러 해결 방법

1. 스크롤을 사용하여 요소를 뷰포트에 위치시키기

이 요소가 뷰포트 밖에 있다면, 스크롤을 사용하여 해당 요소를 뷰포트 안으로 옮길 수 있습니다.

driver.execute_script("arguments[0].scrollIntoView(true);", element)
actions.move_to_element(element).perform()

2. 직접 좌표로 이동하기

요소의 위치를 직접 계산하여 해당 좌표로 마우스를 이동할 수 있습니다. 이는 요소가 고정되어 있는 경우 유용합니다.


from selenium.webdriver.common.action_chains import ActionChains

# 요소의 위치 얻기
location = element.location
x = location['x'] + 10  # 약간의 오프셋 추가
y = location['y'] + 10  # 약간의 오프셋 추가

# 마우스를 특정 자리로 이동
actions.move_by_offset(x, y).perform()

마무리

이번 포스트에서는 Selenium에서 발생할 수 있는 'MoveTargetOutOfBounds' 오류에 대한 개요와 해결 방법을 살펴보았습니다. 요소가 뷰포트 밖에 있는 경우, 스크롤을 통해 이동시키거나 직접 좌표로 지정하여 마우스를 옮기는 방법을 사용할 수 있습니다. 이러한 기법을 통해 성공적으로 웹 자동화를 진행해 보세요!

반응형