更改浏览器后 Python Selenium 保留元素

标签 python python-3.x selenium selenium-webdriver selenium-chromedriver

我目前正在 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/

相关文章:

python - 如何使用重复参数更新完美流程?

使用 Selenium 的 Django 测试未加载固定装置

python - 如何停止无限 while 循环 python emacs

python - 如何让pandas.Series.str.get_dummies() 报NaN?

python - 无法使用 radare2 : invalid option -- '0' 打开文件

python - 为静态文件配置 Python GAE app.yaml

python - 如何在 Python3 中解压缩使用 PKZIP 以外的算法加密的文件?

python - SSL ConnectionResetError 从哪里来?

google-chrome - 使用 Selenium 另存为 PDF Chrome

c# - 从 C# 调用的 Selenium Java 进程在 CCNET 构建服务器上无法正常启动