[C#, Selenium] 스크립트를 실행한 다음, 기다리는 예시(예제) 코드

C#에서 Selenium(셀레늄, 셀레니움)을 사용하여 스크립트가 실행된 후 웹 페이지의 상태가 완전히 로드될 때까지 기다리는 예시(예제) 코드를 공유합니다. 여기서 WebDriverWaitIJavaScriptExecutor를 활용하여 document.readyState가 "complete"가 될 때까지 기다린답니다.

페이지가 완전히 로드되었는지를 확인하고, 로드가 완료되면 true를 반환하는 예시코드는 다음과 같아요.

using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using System;

private void BeomSang()
{
    try
    {
        using (IWebDriver driver = new ChromeDriver())
        {
            bool isStateComplete = new WebDriverWait(driver, TimeSpan.FromMilliseconds(10000)).Until(
                            d => ((IJavaScriptExecutor)d).ExecuteScript("return document.readyState").Equals("complete"));
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }
}
  1. WebDriverWait: 주어진 시간 내에 조건이 충족될 때까지 대기하는 클래스입니다. 여기서는 10초 동안 document.readyState가 "complete"가 될 때까지 기다립니다.
  2. IJavaScriptExecutor: Selenium의 ExecuteScript 메서드를 사용하여 JavaScript 코드를 실행합니다. 여기서는 document.readyState를 반환하는 스크립트를 실행합니다.
  3. document.readyState: 페이지의 현재 로드 상태를 나타내며, "complete"는 페이지가 완전히 로드된 상태를 의미합니다.

이 코드를 사용하면, 페이지가 로드 된 이후의 코드에 대해 특정 코드를 실행하는 데 도움을 줄 수 있을 것입니다.

댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗