>Java >java지도 시간 >클릭하기 전에 WebDriver에서 요소 가시성을 안정적으로 기다리는 방법은 무엇입니까?

클릭하기 전에 WebDriver에서 요소 가시성을 안정적으로 기다리는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-27 05:58:10299검색

How to Reliably Wait for Element Visibility in WebDriver Before Clicking?

WebDriver: 요소 존재 대기

질문: 요소가 표시되기 전에 어떻게 안정적으로 기다릴 수 있습니까? 그것을 클릭? 암시적 대기만으로는 일관성이 없어 보입니다.

이 문제를 해결하기 위해 암시적 대기를 사용할 수 있습니다. 그러나 보다 안정적인 솔루션은 다음과 같습니다.

for (int second = 0;; second++) {
    Thread.sleep(sleepTime);
    if (second >= 10)
        fail("timeout : " + vName);
    try {
        if (driver.findElement(By.id(prop.getProperty(vName))).isDisplayed())
            break;
    } catch (Exception e) {
        writeToExcel("data.xls", e.toString(), parameters.currentTestRow, 46);
    }
}
driver.findElement(By.id(prop.getProperty(vName))).click();

이 코드는 요소가 표시되거나 시간 초과 값에 도달할 때까지 기다립니다. 그러나 사용자가 대기 시간을 정의해야 하므로 불편할 수 있습니다.

답변: WebDriver의 명시적 대기 기능을 활용하여 요소 존재에 대한 신뢰할 수 있는 대기를 보장하세요.

다음 코드는 권장 접근 방식을 보여줍니다.

WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));

또는 다음을 수행할 수 있습니다. 사용:

wait.until(ExpectedConditions.elementToBeClickable(By.id<locator>));

이러한 방법은 대기 조건에 대한 세밀한 제어를 제공하므로 사용자 정의 절전 논리가 필요하지 않습니다.

추가 리소스:

  • [예상 조건](https://seleniumhq.github.io/selenium/javadoc/3.141.59/org/openqa/selenium/support/ui/ExpectedCondit ions.html)
  • [WebDriverWait](https://seleniumhq.github.io/selenium/javadoc/3.141.59/org/openqa/selenium/support/ui/WebDriverWait.html)

위 내용은 클릭하기 전에 WebDriver에서 요소 가시성을 안정적으로 기다리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.