Selenium을 사용하여 애플리케이션을 만들려고 합니다. 내 기능은 정확히 다음과 같습니다. 일부 드롭다운 메뉴에서 선택하면 '로드 중' 클래스가 포함된 애니메이션이 페이지에 표시되며, 이 동안 모든 요소가 제거되었다가 로드가 완료되면 다시 추가됩니다. 나는 공유한 방식으로 이 문제를 처리했지만 더 효율적인 방법이 있다고 믿습니다. 도와주실 수 있나요?
selectElement: ul 및 li를 사용하여 생성된 메뉴에는 JavaScript 이벤트가 정의되어 있습니다.
optionElement: selectElement 부분에서 선택을 한 후, select 내의 옵션을 로드하고, 로드되었는지 확인합니다.
optionToSelect: selectElement 내의 li 요소로 구성됩니다.
isLoadingExpected: 일부 항목을 선택한 후 페이지에 로딩 애니메이션이 나타나는데 이를 방지할 수 없었습니다.
동영상과 제가 하고 싶은 일은 다음과 같습니다(개인정보 보호를 위해 흐리게 표시): https://streamable.com/p47d93
selectItem(Elements.xxx.xPath, Elements.xxxOptions.xPath, aaa.bbb.xPath, 0);
`public static void selectItem(String selectElement, String optionElements, String optionToSelect, int isLoadingExpected)에서 예외 발생 {
WebDriverWait waitElement = new WebDriverWait(chromeDriver, Duration.ofSeconds(10));
if (isLoadingExpected == 1) { waitElement.until(ExpectedConditions.visibilityOfElementLocated(By.className("loading"))); waitElement.until(ExpectedConditions.invisibilityOfElementLocated(By.className("loading"))); } WebElement selectWebElement = waitElement.until(ExpectedConditions.elementToBeClickable(By.xpath(selectElement))); waitElement.until(ExpectedConditions.numberOfElementsToBeMoreThan(By.xpath(optionElements), 1)); selectWebElement.click(); WebElement optionWebElement = waitElement.until(ExpectedConditions.elementToBeClickable(By.xpath(optionToSelect))); optionWebElement.click(); }`
위 내용은 Selenium 페이지 로딩을 기다리는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!