python - Python Selenium:StaleElementReferenceException / 设置 aria-pressed = "true"
问题描述
我正在使用 Python Selenium 尝试从网站获取一些数据,并且需要更改日期。
我尝试了以下方法:获取包含所有日期的表格并遍历所有 tds。如果出现正确的日期,请单击。不幸的是,这不起作用。它打印正确的数字,但它没有点击它应该或任何一个。
day_table = depar_date.find_element_by_xpath("/html/body/div[8]/section/div/div/div[2]/div/table/tbody")
day_table.click()
for row in test.find_elements_by_css_selector('tr'):
for cell in row.find_elements_by_tag_name('td'):
print(cell.text)
if cell.text == "15":
cell.click()
我收到以下错误消息:
StaleElementReferenceException:陈旧的元素引用:元素未附加到页面文档
我还看到对于选定的日子 aria-pressed = "true",有没有办法为正确的日子设置这个 "true"?
非常感谢您的帮助。
解决方案
我猜您需要对按钮本身执行操作,而不是“tr”元素,因为事件侦听器在按钮上。您能否尝试执行以下操作并让我知道会发生什么:
depar_date.find_element_by_xpath("//td/button[text()="15"]").click()
推荐阅读
- reporting-services - SSRS 中的参数填充不正确
- python - 属于同一类模型的 Django 字段之间的算术运算。可能吗?
- java - 将 aws api 网关客户端证书与 spring boot mvc rest 控制器一起使用的确切步骤是什么?
- javascript - Google 表格脚本在表格顶部将数据集从一张表格复制到另一张表格(仅限值)
- python - Pandas - 水平统一数据框,将行变成列
- c# - 为什么不能在foreach中更改文件夹名称
- javascript - 更新到 ng2-dragula 2.0 不起作用
- android - View Pager addOnPageChangeListener 不适用于 Fragment Pager Adapter
- docker - 如何查看 Docker 映像中的文件(例如:Docker 的 'hello-world' 映像)
- python - 用于 Neo4j 的 Cypher 动态查询?我怎样才能做到这一点?