python - 收到错误“消息:过时的元素引用:元素未附加到页面文档”。我做错了什么
问题描述
connections=driver.find_elements_by_css_selector("a span[class='mn-connection-card__name t-16 t-black t-bold']")
print(len(connections))
for connection in connections:
if connection.text == "XXX":
connection.click()
break
我在 if 语句中收到以下错误:
过时的元素引用:元素未附加到页面文档
解决方案
当您的脚本尝试对其执行某些操作的元素的属性发生更改时,会发生陈旧元素异常。如果要单击带有文本“XXX”的跨度,可以直接单击它:
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//a[span[text()='XXX']]")))
如果您的要求是遍历所有这些元素,那么:
connections=driver.find_elements_by_css_selector("a span[class='mn-connection-card__name t-16 t-black t-bold']")
print(len(connections))
for i in range(len(connections)):
connections=driver.find_elements_by_css_selector("a span[class='mn-connection-card__name t-16 t-black t-bold']") #Created Fresh element list, so it wont be stale
if connections[i].text == "XXX"
connections[i].click
break
推荐阅读
- python - 如何以编程方式检查python包是否是最新版本?
- shopify - 在特定位置的产品页面上显示变体价格
- java - Jenkins插件:发送FormValidation.error()时如何停用作业保存按钮?
- javascript - 仅在有历史记录时显示按钮
- python - 运行预提交运行时出错
- php - 如何获取数组中“集合”的总数?
- swift - TCP 套接字流和 SSL 与 Swift
- java - DateTimeFormatter 无法将字符串解析为 LocalDateTime
- python-2.7 - 如何在python(tkinter)中检查复选框的状态(启用/禁用)
- go - Go Template 变量检查的行为不像我预期的那样