을 얻을하는 데 도움이 질문을 올바르게 이해하면 때때로 스피너가 표시되고 때로는 그렇지 않은 경우가 있습니다.이 경우에는 사라질 때까지 기다려야합니다. 나는 테스트를 쓰고있는 웹 페이지와 비슷한 상황에 처해있다. 그래서 나는 그것을위한 일종의 해결책을 썼다. 내가 요소에 대해 단 1 초를 삽입
public static boolean isElementDisplayed(WebElement element) {
try {
WebDriverWait wait = new WebDriverWait(driver, 1);
wait.until(ExpectedConditions.visibilityOf(element));
return element.isDisplayed();
} catch (org.openqa.selenium.NoSuchElementException
| org.openqa.selenium.StaleElementReferenceException
| org.openqa.selenium.TimeoutException e) {
return false;
}
}
우리가 알고 있기 때문에 여기에 대기 첫째
, 나는 isDisplayed 방법을 감싸고 단지 편의를 위해 거짓의 true를 돌려 있도록 몇 가지 예외 처리를 수행하는 도우미 함수 isElementDisplayed이 스피너가 곧 페이지에 나타나고 그 이상의 대기 시간은 없습니다.
public static void waitForElementToBeGone(WebElement element, int timeout) {
if (isElementDisplayed(element)) {
new WebDriverWait(driver, timeout).until(ExpectedConditions.not(ExpectedConditions.visibilityOf(element)));
}
}
내 응용 프로그램에서 긴 스피너 작업의 모든 경우를 커버 할 수 있었다 타임 아웃 시간을 조정함으로써 :
둘째, 나는 그것이 페이지에 감지되면 사라질하는 회 전자를 기다리는 방법이있다. 또한 스피너가 없을 경우 스피너를 기다리는 데 소요되는 시간을 피하기 때문에 테스트 실행 속도를 높일 수 있습니다.
[ask]를 읽으십시오. 시도한 코드와 오류 메시지 등을 포함한 실행 결과를 제공하십시오. 또한 페이지 및/또는 관련 HTML에 대한 링크를 제공하십시오. – JeffC