tebeka / selenium

Selenium/Webdriver client for Go
MIT License
2.51k stars 410 forks source link

The element reference of...is stale #312

Open BrunoMCBraga opened 1 year ago

BrunoMCBraga commented 1 year ago

Hello

I am currently using selenium to automate a login and I am using the following sequence:

userNameElement, err = wd.FindElement(selenium.ByName, "user_name")
    if err := wd.Get(loginURL); err != nil {
        return errors.New(fmt.Sprintf("... failed on wd.FindElement #username with error: %s", err.Error()))
    }

    if err := userNameElement.Clear(); err != nil {
        return errors.New(fmt.Sprintf("...failed on elem.Clear with error: %s", err.Error()))
    }

I keep getting the same error and the browser crashes. The error is on the description.

I have found this stale error on stackoverflow posts and with the Pythin version of selenium it is possible to ignore this type of error or at least use a Wait to wait until the form is loaded.

There is no way for me to block this exceptions according to the source code and I have no idea how to handle this error. I have tried sleep and wait but the error keeps triggering again.

Thanks

draganm commented 1 year ago

Think you should swap the order of Get() and FindElement() - Get will instruct the browser to load the page, so whatever element reference you got before Get() is guaranteed to be invalid.