Python/Selenium
selenium.execute_async_script로 비동기 JavaScript 실행하기
PySun
2025. 2. 16. 08:10
반응형
Selenium을 이용한 비동기 JavaScript 실행: execute_async_script
웹 자동화의 세상에 발을 들인 여러분, 이제는 여러분의 스크립트에 생명을 불어넣을 차례입니다! 오늘은 Selenium의 execute_async_script 메소드를 통해 비동기 JavaScript를 실행하는 방법에 대해 알아보겠습니다. 이 방법을 통해 브라우저에서 비동기 작업을 손쉽게 처리할 수 있습니다.
execute_async_script 메소드 소개
Selenium의 execute_async_script 메소드는 주어진 JavaScript 코드를 비동기적으로 실행할 수 있게 해줍니다. 이 메소드는 요청된 코드가 완료되기를 기다리면서, 웹 페이지의 응답을 더 나은 속도로 관리할 수 있도록 도와줍니다. 이제 더 이상 지루한 동기식 실행에 얽매이지 말고, 비동기적인 편리함을 즐겨보세요!
함수 시그니처
driver.execute_async_script(script, *args)
매개변수:
- script: 실행할 JavaScript 코드입니다. 코드의 마지막에는 arguments[0]에 값을 할당하여 값을 반환해야 합니다.
- *args: JavaScript 코드에서 사용할 추가 인자입니다.
반환 값:
- JavaScript 코드의 실행 결과를 반환합니다.
사용 예제
비동기 JavaScript 실행 예제
다음은 Selenium을 사용하여 비동기 JavaScript를 실행하는 기본 예제입니다.
from selenium import webdriver
import time
# 웹드라이버 초기화
driver = webdriver.Chrome()
# 테스트할 페이지 열기
driver.get("https://example.com")
# 비동기 JavaScript 코드 실행
driver.execute_async_script("""
var callback = arguments[arguments.length - 1]; // 최종적인 callback 저장
setTimeout(function() {
callback('Hello from Async Script!');
}, 2000);
""")
# 결과 출력
print("Script executed.")
time.sleep(2) # 결과가 나오는 것을 기다리기 위해 대기
# 드라이버 종료
driver.quit()
여러 사용자 입력 처리 예제
아래 예제에서는 비동기 JavaScript에서 사용자 입력을 받아 여러 개의 인자를 처리하는 방법을 보여줍니다.
from selenium import webdriver
import time
# 웹드라이버 초기화
driver = webdriver.Chrome()
# 테스트할 페이지 열기
driver.get("https://example.com")
# 사용자 입력을 받아 비동기 JavaScript 실행
name = "Alice"
age = 30
result = driver.execute_async_script("""
var callback = arguments[arguments.length - 1]; // 최종적인 callback 저장
setTimeout(function() {
callback('Name: ' + arguments[0] + ', Age: ' + arguments[1]);
}, 2000);
""", name, age)
# 결과 출력
print("Script executed:", result)
# 드라이버 종료
driver.quit()
결론
이제 여러분은 Selenium의 execute_async_script 메소드를 통해 비동기 JavaScript를 활용할 준비가 되었습니다! 웹 자동화의 가능성을 더욱 확장하고, 속도와 효율성을 높일 수 있는 이 강력한 도구를 활용해 보세요.
- 비동기 스크립트로 웹 페이지의 상호작용을 개선해보세요!
- 지금 바로 execute_async_script 메소드를 사용하여 자동화의 재미를 경험해보세요!
반응형