我正在嘗試使用 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) throws Exception {
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中文網其他相關文章!