|
发表于 2023-5-19 18:10:20
|
显示全部楼层
可以使用WebDriverWait类和expected_conditions模块来判断元素是否发生变化。以下是代码示例:
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- from selenium.webdriver.common.by import By
- # 等待10秒钟,每0.1秒钟检查一次元素是否发生变化
- wait = WebDriverWait(driver, 10, poll_frequency=0.1)
- # 获取要检查的元素
- element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.markdown-body")))
- # 获取元素的文本内容
- previous_content = element.text
- # 持续检查元素是否发生变化
- while True:
- # 等待元素发生变化
- wait.until(EC.staleness_of(element))
-
- # 获取元素的新文本内容
- new_content = element.text
-
- # 判断元素的文本内容是否发生变化
- if new_content != previous_content:
- print("元素发生了变化")
- break
-
- # 更新previous_content
- previous_content = new_content
复制代码
在上面的代码中,我们首先使用WebDriverWait类等待元素的出现,并获取元素的文本内容。然后我们使用一个while循环来持续检查元素是否发生变化。在每次循环中,我们使用wait.until(EC.staleness_of(element))等待元素发生变化,然后获取元素的新文本内容,并与之前的文本内容进行比较。如果发现文本内容发生了变化,就打印出相应的信息并跳出循环。否则,我们更新previous_content的值,然后继续循环等待元素发生变化。 |
|