본문 바로가기
Python/Selenium

파이썬 Selenium MoveTargetOutOfBoundsException 오류 해결

by PySun 2023. 8. 26.
반응형

MoveTargetOutOfBoundsException은 마우스 커서나 터치 입력 위치가 요소의 영역을 벗어날 때 발생하는 예외입니다. 예를 들어, 특정 요소를 클릭하거나 특정 위치로 이동하려 할 때 해당 위치가 요소의 범위를 벗어나는 경우에 발생할 수 있습니다. 예시 코드와 해결 방법에 대해 설명하겠습니다.

예시 코드:

아래 예시 코드에서는 MoveTargetOutOfBoundsException이 발생할 수 있는 상황을 보여줍니다. 요소의 범위를 벗어나는 위치로 이동하려는 시나리오를 시뮬레이션한 것입니다.

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.common.exceptions import MoveTargetOutOfBoundsException

try:
    driver = webdriver.Chrome('path/to/chromedriver')

    # 요소 범위를 벗어나는 위치로 이동 시도
    driver.get('https://www.example.com')
    element = driver.find_element_by_id('element_id')
    actions = ActionChains(driver)
    actions.move_to_element(element).move_by_offset(100, 100).perform()

except MoveTargetOutOfBoundsException as e:
    print("MoveTargetOutOfBoundsException이 발생했습니다:", str(e))
finally:
    # 브라우저 종료
    driver.quit()

해결 방법:

MoveTargetOutOfBoundsException이 발생한 경우 다음과 같은 방법으로 처리할 수 있습니다.

올바른 위치로 이동:

요소의 영역을 벗어나지 않는 위치로 이동하도록 조정합니다. ActionChains 클래스의 move_to_element() 메서드와 move_by_offset() 메서드를 사용하여 마우스 커서를 원하는 위치로 이동시킬 수 있습니다.

from selenium.webdriver import ActionChains

# 올바른 위치로 이동 예시
element = driver.find_element_by_id('element_id')
actions = ActionChains(driver)
actions.move_to_element(element).perform()  # 요소 위로 이동

요소 내부로 이동:

요소 내부의 특정 위치로 이동하도록 조정합니다. move_to_element_with_offset() 메서드를 사용하여 요소 내부의 위치로 이동시킬 수 있습니다.

from selenium.webdriver import ActionChains

# 요소 내부로 이동 예시
element = driver.find_element_by_id('element_id')
actions = ActionChains(driver)
actions.move_to_element_with_offset(element, 50, 50).perform()  # 요소 내부로 이동

MoveTargetOutOfBoundsException이 발생한 경우 요소 내부로 이동하거나 올바른 위치로 이동시켜서 예외를 해결합니다. 마우스 커서나 터치 입력이 요소의 영역을 벗어나지 않도록 주의하여 처리합니다.

반응형