Java Seleneium-WebDriver에서는 애플리케이션이 로드하는 데 시간이 걸리는 시나리오가 발생할 수 있습니다. 사용자 인터페이스로 인해 요소 위치 오류가 발생합니다. 이 문제를 해결하기 위해 암시적 대기와 명시적 대기라는 두 가지 대기 옵션이 있습니다.
암시적 대기:
코드 조각에서 설명한 대로 암시적 대기를 2로 설정합니다. 초:
<code class="java">driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);</code>
이는 오류가 발생하기 전에 드라이버가 요소를 사용할 수 있을 때까지 최대 2초 동안 기다린다는 의미입니다.
명시적 대기:
명시적 대기를 위해서는 운전자가 계속 진행하기 전에 특정 조건이 충족되어야 합니다. 이 목적으로 WebDriverWait.until 메소드를 사용할 수 있습니다:
<code class="java">WebDriverWait wait = new WebDriverWait(driver, 10); WebElement textbox = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("textbox")));</code>
여기서 드라이버는 계속하기 전에 ID가 "textbox"인 요소가 표시될 때까지 최대 10초를 기다립니다.
어느 것이 더 낫습니까?
암시적 대기와 명시적 대기 사이의 선택은 상황에 따라 다릅니다.
권장 사항:
특정 시간 프레임 내에서 요소 존재가 보장되지 않는 상황에서 명시적 대기, 특히 다음과 같은 유창한 대기를 사용합니다. 답변에 제공된 것을 권장합니다.
<code class="java">public WebElement fluentWait(final By locator) { // Fluent wait implementation provided in the answer... } WebElement textbox = fluentWait(By.id("textbox"));</code>
유창한 대기를 통해 시간 초과 및 폴링 간격을 맞춤 설정할 수 있어 더 많은 유연성을 제공하고 불필요한 지연을 방지할 수 있습니다.
위 내용은 Selenium WebDriver의 암시적 대기와 명시적 대기: 어느 것을 선택해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!