【发布时间】:2021-02-27 20:28:52
【问题描述】:
所以我的代码正在运行,但我不明白为什么,这让我很恼火。
def load_more():
while True:
try:
WebDriverWait(driver, 20, ignored_exceptions = (StaleElementReferenceException)).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".more"))).click()
time.sleep(1)
except TimeoutException:
return
上面的功能是在我加载初始页面后使用的,点击“显示更多”按钮,直到它不再存在。
我的挫败在于使用time.sleep(1)。如果我删除它,代码会在随机点抛出StaleElementReferenceException。即使它在ignored_exceptions 中列出。
我的问题是。为什么代码需要使用sleep()函数?
【问题讨论】:
-
,ignored_exceptions = (StaleElementReferenceException) 删除这一行,
-
@PDHide 这个问题的答案如何?
-
请添加更多上下文行什么网站,你想做什么等。 staleelement 表示参考在被识别后发生了变化
-
如果在 webdriverwait 返回元素后找到元素并且引用更改,则添加忽略的异常无济于事,
-
如果页面中发生任何异步操作,也会发生staelement
标签: python python-3.x selenium selenium-webdriver