For some reason some website with document.readyState == 'complete' just get in this condition, and selenium is getting lost.
I tested the same pages with ruby and everything works pretty fine.
@contextmanager
def _wait_for_page_refresh(self, timeout=10):
yield
WebDriverWait(self.browser, timeout).until(
staleness_of(old_page),
message="Old page did not go stale within %ss" % timeout
)
self.selib.wait_for_condition("return (document.readyState == 'complete')", timeout=10)