selenium 刷新前后元素无变化,等待页面刷新
时间: 2023-08-10 20:33:14 浏览: 113
如果在点击刷新按钮后,页面上的元素没有发生变化,可以通过等待页面加载完成来判断页面是否已经刷新。可以使用 `WebDriverWait` 类等待页面的 `document.readyState` 属性变为 `complete` 来判断页面是否已经加载完成。
例如,可以使用以下代码等待页面加载完成:
```python
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 点击刷新按钮
button = driver.find_element_by_id("refresh-button")
button.click()
# 等待页面加载完成
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.TAG_NAME, "body")))
wait.until(EC.presence_of_element_located((By.XPATH, "//div[@id='content']")))
wait.until(EC.script("return document.readyState === 'complete'"))
```
这里使用了 `WebDriverWait` 类和 `expected_conditions` 模块来等待页面加载完成。首先使用 `presence_of_element_located` 方法等待页面的 `body` 元素出现,然后使用 `presence_of_element_located` 方法等待页面上的某个元素(这里假设页面上有一个 ID 为 content 的元素),最后使用 `EC.script` 方法等待页面的 `document.readyState` 属性变为 `complete`。
当页面加载完成时,`until` 方法会返回,代码继续执行。如果等待时间超过了指定的最长时间,`until` 方法会抛出 `TimeoutException` 异常。
阅读全文