본문 바로가기
Python/Selenium

Selenium JavaScriptError 오류 해결하기

by PySun 2025. 1. 4.
반응형

소개

Selenium을 이용하여 웹 자동화를 진행하다 보면 종종 'JavaScriptError'가 발생하는 경우가 있습니다. 이 오류는 JavaScript 코드를 실행하는 동안 에러가 발생했음음을 의미하며, 이는 여러 이유로 발생할 수 있습니다. 이 블로그 글에서는 Selenium에서 발생할 수 있는 'JavaScriptError'의 원인과 해결 방법을 알아보겠습니다.

에러 발생 예시 코드

먼저, 'JavaScriptError'가 발생할 가능성이 있는 간단한 Selenium 예시 코드를 살펴보겠습니다.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class WarningExample {
    public static void main(String[] args) {
        // WebDriver 설정
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
        WebDriver driver = new ChromeDriver();

        // 잘못된 JavaScript 코드 실행
        driver.get("http://example.com");
        driver.executeScript("someInvalidJavaScriptCode();");

        driver.quit();
    }
}

에러 해결 방법

1. 유효한 JavaScript 코드 사용

가장 먼저 확인할 것은 자바스크립트 코드가 유효한지입니다. 잘못된 코드가 포함되어 있으면 'JavaScriptError'가 발생합니다. 예를 들어, 코드 내에서 호출하려는 함수가 정의되어 있는지 점검하세요.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class ValidJavaScript {
    public static void main(String[] args) {
        // WebDriver 설정
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
        WebDriver driver = new ChromeDriver();

        // 유효한 JavaScript 코드 실행
        driver.get("http://example.com");
        driver.executeScript("alert('Hello, world!');"); // 정상적인 코드

        driver.quit();
    }
}

2. 페이지가 완전히 로드된 후 스크립트 실행

JavaScript 코드가 DOM 요소와 상호작용하는 경우, 페이지가 완전히 로드된 상태에서 실행되어야 합니다. 'WebDriverWait'를 사용하여 요소가 로드될 때까지 대기하는 방법이 좋은 해결책입니다.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class WaitForElement {
    public static void main(String[] args) {
        // WebDriver 설정
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
        WebDriver driver = new ChromeDriver();

        // 페이지 로드
        driver.get("http://example.com");

        // 요소 로드 대기
        WebDriverWait wait = new WebDriverWait(driver, 10);
        wait.until(ExpectedConditions.elementToBeClickable(By.id("someButtonId")));
        
        // JavaScript 코드 실행
        driver.executeScript("document.getElementById('someButtonId').click();");

        driver.quit();
    }
}

마무리

이 블로그 글에서는 Selenium에서 발생하는 'JavaScriptError'에 대한 일반적인 해결 방법을 살펴보았습니다. 유효한 JavaScript 코드를 사용하고 페이지가 완전히 로드된 후 스크립트를 실행하는 것이 중요하다는 점을 잊지 마세요. Selenium을 통한 웹 자동화를 연습하며 이러한 오류를 극복해 나가길 바랍니다.

반응형