Seleniumで要素が表示されているのに、StaleElementReferenceExceptionが発生する
SeleniumでimplicitlyWaitで待っていると要素が表示されても、StaleElementReferenceException
が発生してしまいます。
なぜなのでしょうか?
下記のようなコードを実行するとsubmit後の画面が再描画された直後にエラーが起きてしまいます。
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // 10秒間待機させる
driver.get("http://example.com/app");
driver.findElement(new By.ById("user")).sendKeys("username");
driver.findElement(new By.ById("password")).sendKeys("my_password");
driver.findElement(new By.ById("submit-button")).click();
// 要素が表示されるのに時間がかかる (約5~6秒)
driver.findElement(new By.ByClassName("menu-button")).click();
// ここでStaleElementReferenceExceptionが起きる