在Selenium/Python中迭代WebElements

在Selenium/Python中迭代WebElements,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我试图遍历一个web元素列表并单击列表中的每个元素,但是在第一次单击之后,我得到了StaleElementReferenceException。据我所知,页面刷新,元素的id变为“陈旧”。有解决办法吗?谢谢 elements = driver.find_elements_by_css_selector("span.name") for element in range(len(elements)): elements[element].click() 如果单击元素后仅更改元素的id,则

我试图遍历一个web元素列表并单击列表中的每个元素,但是在第一次单击之后,我得到了StaleElementReferenceException。据我所知,页面刷新,元素的id变为“陈旧”。有解决办法吗?谢谢

elements = driver.find_elements_by_css_selector("span.name")
for element in range(len(elements)):
    elements[element].click()

如果单击元素后仅更改元素的id,则可以使用以下代码:

elements = driver.find_elements_by_css_selector("span.name")
for element in range(len(elements)):
    elements[element].click()
    elements = driver.find_elements_by_css_selector("span.name")

这取决于您尝试单击的页面和元素。如果单击刷新页面或部分页面的元素,则刷新的任何元素都将过时。如果页面从未更改,则可以通过索引循环到元素集合中,并通过页面刷新来维护该索引,以避免过时问题。