WebDriverWait를 구현할 때 해당 텍스트를 검색하기 전에 요소가 나타날 때까지 기다리는 대기 기능 무시된 것으로 나타납니다. 예외.
기본 이유:
기본적으로 WebDriverWait는 폴링 간격을 사용하여 요소의 존재를 주기적으로 확인합니다. 초기 확인 중에 요소를 즉시 사용할 수 없는 경우 후속 폴링 간격이 요소의 모양을 포착할 만큼 빈번하지 않아 예외가 발생할 수 있습니다.
1. 폴링 빈도 늘리기:
WebDriverWait가 요소를 더 자주 확인하도록 하려면 더 작은 값의 TimeSpan을 WebDriverWait 생성자에 전달하여 폴링 간격을 늘립니다.
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(1));
2. ExpectedConditions.ElementIsVisible 사용:
또는 요소가 표시되어 상호 작용에 사용 가능해질 때까지 명시적으로 기다리는 SeleniumExtras.WaitHelpers의 ExpectedConditions.ElementIsVisible 메서드를 사용할 수 있습니다. 이렇게 하면 폴링 종속성이 제거됩니다.
string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until(ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");
3. DotNetSeleniumExtras.WaitHelpers 사용:
DotNetSeleniumExtras.WaitHelpers nuget 패키지를 사용하는 경우 ExpectedConditions 클래스를 직접 가져와 사용할 수 있습니다.
string messageText = new WebDriverWait(driver, TimeSpan.FromSeconds(30)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.ClassName("block-ui-message"))).GetAttribute("innerHTML");
위 내용은 내 WebDriverWait가 요소를 기다리지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!