본문 바로가기
Python/Selenium

selenium.webdriver.execute_script로 JavaScript 실행하기

by PySun 2025. 1. 20.
반응형

Selenium의 webdriver.execute_script: 웹 페이지에서 JavaScript 실행하기

웹 자동화의 세계에는 무궁무진한 가능성이 존재합니다. Selenium은 이러한 가능성을 현실로 만들어주는 도구 중 하나입니다. 특히 webdriver.execute_script 메서드는 웹 페이지 내에서 사용자 정의 JavaScript 코드를 실행할 수 있는 강력한 기능을 제공합니다. 이 포스팅에서는 execute_script의 사용법과 함께 다양한 예제를 통해 이 기능을 탐험해 보겠습니다.

webdriver.execute_script 함수 소개

webdriver.execute_script 메서드는 Selenium의 WebDriver 인스턴스를 통해 JavaScript 코드를 실행할 수 있게 해줍니다. 이를 통해 동적인 웹 페이지에서 필요한 다양한 작업을 손쉽게 자동화할 수 있습니다. 이 메서드는 기본적으로 문자열 형태의 JavaScript 코드를 받아 해당 코드가 실행될 웹 페이지의 컨텍스트에서 평가됩니다.

함수 시그니처

webdriver.execute_script(script, *args)

매개변수:

  • script: 실행할 JavaScript 코드의 문자열입니다.
  • *args: JavaScript 코드에 전달할 인수들입니다.

반환 값:

  • JavaScript 코드가 반환하는 값을 반환합니다.

사용 예제

기본 예제

다음은 webdriver.execute_script를 사용하여 웹 페이지에서 간단한 JavaScript 코드(예: 페이지의 타이틀 가져오기)를 실행하는 기본 예제입니다.

from selenium import webdriver

# WebDriver 인스턴스 생성
driver = webdriver.Chrome()

# 웹 페이지 열기
driver.get("https://www.example.com")

# JavaScript 코드 실행하여 타이틀 가져오기
title = driver.execute_script("return document.title;")

print(f"The title of the page is: {title}")

# 드라이버 종료
driver.quit()
# 출력:
# The title of the page is: Example Domain

더 복잡한 예제: DOM 요소 수정하기

JavaScript를 사용하여 웹 페이지의 요소를 수정하거나 추가할 수도 있습니다. 아래의 예제에서는 새로운 요소를 페이지에 추가하는 방법을 보여줍니다.

from selenium import webdriver

# WebDriver 인스턴스 생성
driver = webdriver.Chrome()

# 웹 페이지 열기
driver.get("https://www.example.com")

# 페이지의 바디에 새로운 요소 추가
driver.execute_script("var newDiv = document.createElement('div'); newDiv.innerHTML = 'Hello, Selenium!'; document.body.appendChild(newDiv);")

# 추가한 요소의 텍스트 확인하기
added_text = driver.execute_script("return document.body.lastChild.innerHTML;")
print(f"The added text is: {added_text}")

# 드라이버 종료
driver.quit()
# 출력:
# The added text is: Hello, Selenium!

결론

webdriver.execute_script 메서드는 웹 페이지에 JavaScript 코드를 실행하는 데 매우 유용하게 활용됩니다. 이를 통해 다이나믹한 웹 페이지에서 효과적으로 요소를 수정하거나 정보를 추출할 수 있습니다. 여러분도 이 기능을 활용하여 편리한 웹 자동화 작업을 경험해 보세요!

  • JavaScript를 사용하여 웹 페이지의 여러 작업을 자동화해 보세요!
  • 지금 바로 webdriver.execute_script 메서드를 사용하여 웹 페이지의 매력을 더해 보세요!
반응형