我目前正在 Python 上使用 Selenium,并且有一个关于它的问题。
elements = driver.find_elements_by_css_selector("div.classname a")
for element in elements:
element.click()
driver.back()
自从在这段代码中使用 back() 返回上一页后,Selenium 再也找不到元素了,尽管我仍然需要它。
如果有人有任何线索,请帮助我。
多多预赏
最佳答案
当您更改页面时,Selenium 会创建一组全新的对象——无论您是单击链接还是返回页面。如果单击第 3 行中的元素导致 Selenium 加载新页面,您将在第二个元素测试中收到 StaleElementException。所以你要做的就是每次执行 driver.back() 时,你都需要像在第一行中那样搜索页面上的元素对象,并且可能至少维护一个计数器,用于记录在列表中到底有多远您已经单击过的元素的数量(假设它们离开了页面)。有道理吗?
关于更改浏览器后 Python Selenium 保留元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45292204/