を使用して Web ページ上の要素を検索しようとしている場合selenium WebDriver
。Implicit WaitまたはExplicit Waitdriver
を使用して、ページが完全に読み込まれるまで待機させることができます。
暗黙の待機の例(このコードは通常、ドライバーを初期化した後に使用されます) -
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
上記のステートメントは、ドライバーが探している要素を見つけられない場合、ドライバーを 10 秒間待機させます。ドライバーが 10 秒経過しても見つからない場合、ドライバーは例外をスローします。
明示的な待機の例- これはWebElement
、あなたの状況では、単一の場合に特に使用されます -
new WebDriverWait(driver, 20).until(ExpectedConditions.presenceOfElementLocated(By.id("gwt-debug-loginButton")));
上記のコードは、要素が見つかるまでドライバーを 20 秒間待機させます。20 秒経過しても要素が見つからない場合は、TimeoutException がスローされます。ここで ExpectedCondition の API を確認できます(このクラスで使用できる多くの興味深いバリエーションがあります)。
(ドライバーは、コードが探している要素が見つからない場合にのみ、指定された期間待機することに注意してください。ドライバーが要素を見つけた場合は、単に実行を続行します)