Selenium を使用してアプリケーションを作成しようとしています。私の機能はまさに次のとおりです。いくつかのドロップダウン メニューから選択を行うと、「loading」クラスのアニメーションがページに表示されます。その間、すべての要素が削除され、読み込みが完了すると再度追加されます。私はこれを共有した方法でなんとか処理できましたが、もっと効率的な方法があると思います。助けていただけますか?
selectElement: ul と li を使用して作成されたメニューには、JavaScript イベントが定義されています。
optionElement: selectElement 部分で選択を行った後、選択内のオプションが読み込まれ、それらが読み込まれたかどうかを確認します。
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 中国語 Web サイトの他の関連記事を参照してください。