[파이썬] Selenium 사용자 지정 로케이터 작성

Selenium은 웹 페이지를 자동화하는 데 사용되는 강력한 도구입니다. 그러나 기본적으로는 웹 요소를 찾을 때 id, class, xpath와 같은 속성을 사용합니다. 때로는 이러한 기본 로케이터로는 원하는 요소를 정확하게 찾기 어려울 때가 있습니다. 이러한 경우에는 사용자 지정 로케이터를 작성하여 원하는 요소를 효과적으로 찾을 수 있습니다.

Python 언어를 사용하여 Selenium의 사용자 지정 로케이터를 작성하는 방법을 살펴보겠습니다. 아래의 예시 코드를 참고하여 진행해 보세요.

1. 필요한 라이브러리 설치

먼저 아래와 같이 selenium 라이브러리를 설치합니다.

pip install selenium

2. CustomLocator 클래스 작성

from selenium.webdriver.common.by import By

class CustomLocator(object):
    def __init__(self, value):
        self.value = value
    
    def __call__(self, driver):
        elements = driver.find_elements(By.CSS_SELECTOR, self.value)
        if len(elements) > 0:
            return elements[0]
        else:
            return False

위의 코드는 CustomLocator라는 사용자 지정 로케이터를 만드는 클래스입니다. __call__ 메소드를 통해 로케이터를 호출하고, 지정한 CSS 선택자에 일치하는 요소를 찾아 반환합니다. 요소를 찾을 수 없는 경우 False를 반환합니다.

3. 사용자 지정 로케이터를 사용하여 요소 찾기

이제 아래와 같이 사용자 지정 로케이터를 사용하여 원하는 요소를 찾을 수 있습니다.

from selenium import webdriver

# 사용자 지정 로케이터를 사용하여 원하는 요소 찾기
driver = webdriver.Chrome()
driver.get('https://example.com')

element = driver.find_element(CustomLocator('.custom-selector'))
print(element.text)

driver.quit()

위의 코드는 Selenium을 사용하여 웹 페이지를 접속하고, CustomLocator를 사용하여 class 속성이 .custom-selector인 요소를 찾고 요소의 텍스트를 출력하는 예시입니다.

결론

이렇게 함으로써 Selenium에서 사용자 지정 로케이터를 작성하는 방법을 알아보았습니다. 사용자 지정 로케이터를 사용하면 기본적으로 제공되는 로케이터로는 찾기 어려운 요소를 효과적으로 찾을 수 있습니다. 이를 통해 웹 자동화 테스트를 더욱 강력하고 유연하게 만들 수 있습니다.