如何在页面刷新后等待先前通过 Selenium 和 Python 存在的元素

How to wait for an element after page refresh which was previously present through Selenium and Python

另一个 thread

上有人问了类似的问题
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Firefox()
element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "element_id"))

此答案无效,因为该元素已存在于上一页中。我希望能够等到页面加载完成然后抓取元素。

由于该元素存在于上一页中,现在您想在页面加载完成后获取该元素,您可以首先为 staleness_of(element) then once again for the element_to_be_clickable(locator) 引入 WebDriverWait 和您可以使用以下解决方案:

WebDriverWait(browser, 10).until(EC.staleness_of(driver.find_element_by_id("element_id"))
element = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.ID, "element_id"))

如果你想等待页面加载然后进一步执行,你可以使用 javascriptexecutor steps.This will return "complete" only if the page已完全加载。

driver.execute_script("return document.readyState")=="complete"