> 백엔드 개발 > C++ > Selenium C# WebDriver에서 요소 존재를 효율적으로 기다리는 방법은 무엇입니까?

Selenium C# WebDriver에서 요소 존재를 효율적으로 기다리는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-25 19:01:11
원래의
944명이 탐색했습니다.

How to Efficiently Wait for Element Presence in Selenium C# WebDriver?

Selenium C# WebDriver: 강력한 요소 대기 기술

Selenium의 웹 요소와 효율적으로 상호 작용하려면 작업을 시도하기 전에 해당 요소가 있는지 확인해야 합니다. 이렇게 하면 요소가 제때 로드되지 않아 발생하는 일반적인 오류를 방지할 수 있습니다. WebDriverWaitExpectedConditions을 활용하여 효과적인 대기 전략을 살펴보겠습니다.

표준 접근 방식은 WebDriverWaitExpectedConditions.ElementIsVisible을 활용합니다.

<code class="language-csharp">WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("login")));</code>
로그인 후 복사

이 코드는 ID가 'login'인 요소가 표시될 때까지 최대 5초를 기다립니다. 간결하게 하기 위해 람다 표현식을 사용할 수 있습니다:

<code class="language-csharp">wait.Until(d => d.FindElement(By.Id("login")).Displayed);</code>
로그인 후 복사

그러나 암시적 대기에만 의존하면 성능에 부정적인 영향을 미칠 수 있습니다. 보다 제어된 접근 방식에는 FindElement:

에 대한 사용자 정의 확장 방법이 포함됩니다.
<code class="language-csharp">public static class WebDriverExtensions
{
    public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds)
    {
        if (timeoutInSeconds > 0)
        {
            var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
            return wait.Until(drv => drv.FindElement(by));
        }
        return driver.FindElement(by);
    }
}</code>
로그인 후 복사

이 확장 방법을 사용하면 시간 초과를 지정할 수 있습니다. 사용법:

<code class="language-csharp">var btn = driver.FindElement(By.CssSelector("#login_button"), 10);
btn.Click();</code>
로그인 후 복사

이 방법은 10초 이내에 CSS 선택기 '#login_button'을 사용하여 요소를 찾으려고 시도합니다. 제한 시간 내에 요소를 찾지 못하면 NoSuchElementException가 발생합니다. 이는 요소 대기를 처리하는 보다 정확하고 효율적인 방법을 제공하여 Selenium 테스트의 전반적인 견고성을 향상시킵니다.

위 내용은 Selenium C# WebDriver에서 요소 존재를 효율적으로 기다리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿