I thought that by explicitly calling find_element we were forcing it to retrieve the element again, but I see that's wrong, and I now see how this is the same code. I assume that the reason that version passes is because I mistyped is_displayed, rather than is_displayed(). If I correct it we are back to the StaleElementException.