19976


SeleniumでimplicitlyWaitで待っていると要素が表示されても、`StaleElementReferenceException`が発生してしまいます。  
なぜなのでしょうか?

下記のようなコードを実行するとsubmit後の画面が再描画された直後にエラーが起きてしまいます。

[code]

    
    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が起きる
    
    
[/code]


CC BY-SA 3.0
2015-12-14T13:16:15.953
19974
2016-09-02T06:43:14.537
5246
question
java selenium-webdriver
Seleniumで要素が表示されているのに、StaleElementReferenceExceptionが発生する


本家SOでもいくつか解答例はありましたが、明確な手法としては、一定時間待機するか、ループして対応する方法で解決しているようです。

こちらが参考になるかも知れません。

How To Handle Stale Element Reference Exception Selenium Webdriver  
<http://software-testing-tutorials-automation.blogspot.jp/2015/02/how-to-
handle-stale-element-reference.html>


CC BY-SA 3.0
2015-12-14T13:50:04.033
19976
2015-12-14T13:50:04.033
5778
19974
answer