selenium判断一个部分是否还有内容更新
python已经通过selenium.webdriver.Chrome类实例打开了该网站,并将驱动器装进了名为“driver”的变量。
有一个css selector为“div.markdown-body”的元素(唯一)里面会不断变动,0.1秒肯定会发生变化。(文本元素,在<p>标签里</p>) 可以使用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的值,然后继续循环等待元素发生变化。 isdkz 发表于 2023-5-19 18:10
可以使用WebDriverWait类和expected_conditions模块来判断元素是否发生变化。以下是代码示例:
我使用了driver.implicitly_wait(30),不需要webdriverwait。更新你的代码 歌者文明清理员 发表于 2023-5-19 18:13
我使用了driver.implicitly_wait(30),不需要webdriverwait。更新你的代码
如果你使用了隐式等待,那么可以用以下的方式来进行元素变化的检测:
from selenium.webdriver.common.by import By
import time
# 获取元素的初始文本内容
element = driver.find_element(By.CSS_SELECTOR, "div.markdown-body")
previous_content = element.text
# 循环检查元素的文本内容是否发生变化
while True:
time.sleep(0.1)# 每0.1秒检查一次
# 获取元素的新文本内容
new_content = element.text
# 判断新的文本内容是否与旧的文本内容不同
if new_content != previous_content:
print("元素发生了变化")
break
# 更新previous_content
previous_content = new_content
在这段代码中,我们首先获取了元素的初始文本内容,然后进入一个无限循环,在每次循环中,我们都会等待0.1秒(你说的元素每0.1秒都会发生变化),然后获取元素的新文本内容,如果新的文本内容与旧的文本内容不同,那么就认为元素发生了变化,打印出相应的信息,并跳出循环。否则,我们就更新旧的文本内容,然后继续下一次循环。 isdkz 发表于 2023-5-19 18:20
如果你使用了隐式等待,那么可以用以下的方式来进行元素变化的检测:
Thank,还以为是bs4{:10_277:} isdkz 发表于 2023-5-19 18:20
如果你使用了隐式等待,那么可以用以下的方式来进行元素变化的检测:
你猜这个“不断变动的内容”是什么{:10_256:}
(不就是gpt吗)
页:
[1]