python - 如何等待列表元素被销毁?
问题描述
我想单击表中删除其行的所有按钮:
try:
elements = driver.find_elements(By.XPATH, '//table//button[@class="deleteEntry"]')
except NoSuchElementException:
print(" [NoSuch] Buttons not found")
return False
for element in elements:
element.click()
# How to wait element is destroyed ?
我必须一一点击它们,然后一一等待它们被摧毁。我知道找到并点击它们,但我如何等待它们被破坏?
解决方案
我假设在您单击“删除”按钮后,某些元素会消失(不可见或从 DOM 中删除)。
您可以尝试显式等待。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# get the element here
# elem_to_disappear = ...
# click delete button
del_btn.click()
# wait until the element is gone
WebDriverWait(driver, 10).until(
EC.invisibility_of_element(elem_to_disappear)
)
推荐阅读
- android - 使用 AccessibilityNodeInfo 导致堆栈大小 8MB 错误
- mercurial - 如何让 mercurial 为文件名添加通配符
- webrtc - 是否有 WebRTC Java 对等客户端库?
- spring-boot - 每个请求的 Spring Boot REST 验证都失败
- python - postgresql(aws redshift) 错误 1204 字符串长度超过 DDL 长度
- javascript - 标记 event.listener 迭代问题,Laravel
- node.js - node.js 中的 Google-Cloud 模块安装失败
- python - 基于 Python 的动态值替换程序
- c# - 什么是 Unity 等价于 StructureMap 的 For
().Use(某事) - c++ - Why does pass-by-value parameters often make code optimization easier for the compiler?