Python,Selenium:“元素不再附加到 DOM”

2024-01-01

我正在抓取一个网站,www.lipperleaders.com http://www.lipperleaders.com/。我想提取新加坡的资金详细信息。我已经成功实现了下拉选择并提取了提交选项后出现的第一页的内容。但是当我尝试转到下一页(通过使代码单击下一个按钮)时,我收到错误'Element is no longer attached to the DOM'.

我的代码大约有 100 行,但我可以大致了解代码的执行流程:

...                    # creating driver object and all the imports
def main():
    ...
    result = find_elements_by_tag_name('span')  
    ...
    driver.find_element_by_id("ctl00_ContentPlaceHolder1_ucDataPager_btnNext").click()
    main()
main()

这段代码对于第一页效果很好,但是当main()单击下一步按钮后再次调用。在这个递归方法之前,我也尝试将其放入循环中,然后也出现同样的错误。

如果我编写相同的代码,例如:

# some code
result = find_elements_by_tag_name('span')  
driver.find_element_by_id("ctl00_ContentPlaceHolder1_ucDataPager_btnNext").click()
# some code
driver.find_element_by_id("ctl00_ContentPlaceHolder1_ucDataPager_btnNext").click()
.
.

该代码工作正常,没有任何错误,下一页加载并执行之后编写的代码。但我不能写同样的driver.find_element_by_id().click()对于 500 页,即使我也必须重复与每个页面相关的其余代码。这就是为什么我尝试循环或递归,但它对我不起作用。

请让我知道我的方法有什么问题。


问题是该元素被某些 JavaScript 分离。所以你应该让驱动程序等待该元素:这是通过设置来完成的implicitly_wait, see:

from selenium import webdriver

ff = webdriver.Firefox()
ff.implicitly_wait(10) # seconds
...
myDynamicElement = ff.find_element_by_id("myDynamicElement")

from http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#implicit-waits http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#implicit-waits

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python,Selenium:“元素不再附加到 DOM” 的相关文章

  • Pandas set_levels,如何避免标签排序?

    我使用时遇到问题set levels多索引 from io import StringIO txt Name Height Age Metres A 1 25 B 95 1 df pd read csv StringIO txt heade
  • Python 类型提示 Dict 语法错误 可变默认值是不允许的。使用“默认工厂”

    我不知道为什么解释器会抱怨这个类型的字典 对于这两个实例 我得到一个 不允许可变默认值 使用默认工厂 语法错误 我使用的是 python 3 7 3 from dataclasses import dataclass from typing
  • 在 Celery 任务中调用 Google Cloud API 永远不会返回

    我正在尝试拨打外部电话Google Cloud Natural Language API从一个内Celery任务 使用google cloud python包裹 问题是对 API 的调用永远不会返回 挂起 celery task def g
  • NLTK 2.0分类器批量分类器方法

    当我运行此代码时 它会抛出一个错误 我认为这是由于 NLTK 3 0 中不存在batch classify 方法 我很好奇如何解决旧版本中的某些内容在新版本中消失的此类问题 def accuracy classifier gold resu
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • 更好地相当于这个疯狂的嵌套 python for 循环

    for a in map for b in map a for c in map b for d in map c for e in map d print a b c d e 上面的代码用于创建图中一定长度的所有路径 map a 表示从
  • NS_ERROR_SOCKET_ADDRESS_IN_USE

    My code from selenium import webdriver import selenium webdriver support ui as ui import time from selenium webdriver su
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • Selenium Grid2 - 远程节点未连接到集线器

    我当前的设置是我有一个 selenium RC 作为 Windows 机器上的集线器运行 假设机器名称是 machine name com 我使用以下命令来启动它 java jar selenium server2 15 jar role
  • 为什么 csv.DictReader 给我一个无属性错误?

    我的 CSV 文件是 200 Service 我放入解释器的代码是 snav csv DictReader open screennavigation csv delimiter print snav fieldnames 200 for
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • 根据 Pandas 中的列表选择数据框行的子集

    我有一个数据框df1并列出x In 22 import pandas as pd In 23 df1 pd DataFrame C range 5 B range 10 20 2 A list abcde In 24 df1 Out 24
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视

随机推荐

  • 如何通过具有多个字段的查询创建动态订单

    我正在尝试创建一个具有多个 order by 字段的存储过程 按字段和方向的顺序作为参数通过存储过程传递 CREATE PROCEDURE GetFilteredLogs FromDate datetime2 ToDate datetime
  • 将 NSURL ** 转换为 CFURLRef *

    如何使用 ARC 编译以下代码 int main NSURL url NSURL new NSURL strong urlPointer url CFURLRef cfPointer bridge CFURLRef urlPointer g
  • Chrome 中的 CSS 渲染在线与离线不同

    我在使用 Google Chrome 时遇到了最奇怪的问题 当我从文件本地预览时 我的 html css 布局在所有浏览器中看起来都很棒 但是当我上传它时 Chrome 并且只有 Chrome 破坏了它 所有其他浏览器都表现良好 甚至 Sa
  • 删除Python用户警告

    我刚刚安装完我的MySQLdbPython 2 6 的包 现在当我使用以下命令导入它时import MySQLdb 将会出现用户警告 usr lib python2 6 site packages setuptools 0 8 py2 6
  • JPA/Hibernate 嵌入式 id

    我想做这样的事情 ReportingFile 对象 可以是 LogRequest 或 LogReport 文件 两者具有相同的结构 一个报告对象 包含一个 logRequest 带有日期的 logReport 列表 我尝试设置一个 Embe
  • 为什么 null React 组件状态初始化会得到“never”类型?

    当将组件的状态初始化为null在组件构造函数之外 状态的类型为never在渲染函数中 但是 当在构造函数中初始化状态时 状态具有正确的类型 根据 StackOverflow 上关于初始化状态的两种方法 在 babeled JS 中 的大多数
  • 在散景中使用 TapTool 设置图形范围

    在下面的示例中 我有两个相互重叠的散点图 预期的行为是 单击上图中的一点时 下图中的点会放大到周围区域 单击下图中的某个点时 下图会放大到周围区域 我已经运行了第一个行为 但第二个行为似乎不起作用 x range重置以覆盖数据的整个范围 忽
  • 仅保证 std::min/std::max 进行一次评估

    C 标准是否保证调用 c std min f x g x 只计算函数 f 和 g 一次 是的 由于 std min 是一个函数 因此 f x 和 g x 将仅计算一次 并且返回值不会被复制 查看函数原型 template
  • Windows 上的 Perl:编码问题

    我的 Perl 脚本有问题 在类 UNIX 系统中 它会打印出所有 Unicode 字符 例如 正确地连接到控制台 在 Windows 命令行中 字符被分解为无意义的字形 有没有一种简单的方法可以避免这种情况 我在用着use utf8 提前
  • 在 SVG 中编写 数据脚本(读取和修改)

    我一直在寻找为我的 SVG 运行脚本的方法 但我得到的所有东西都不匹配 而且它没有包含足够的信息说明为什么使用每组代码 例如 一个使用event target 另一个有event getTarget 另一个有event target fir
  • Sublime Text 3 上的 SASS - [解码错误 - 输出不是 utf-8]

    我今天一直在尝试在 sublime text 3 中使用 sass 为此我安装了 Ruby Ruby SASS gem 以及 Sublime 包 Sass 和 Sass Build 一切似乎都运行良好 但是当我尝试构建 css 文件 使用
  • fastxml(jackson-dataformat-xml) 和 Woodstox 之间有什么关系?

    如果我的问题无效 我很抱歉 但想知道 fastxml jackson dataformat xml 和 Woodstox 之间的关系是什么 文档 https github com FasterXML jackson dataformat x
  • 错误:协议不可用,转储回溯[重复]

    这个问题在这里已经有答案了 2016 09 17 15 16 04 386085 appDemo 2371 94976 nwlog err simulate crash simulate crash already simulated nw
  • 金属绘制 2 个不同的物体,仅显示一个

    我想用 Metal 渲染 2 个不同的对象 我有 2 个不同的着色器 不同的渲染管线和命令缓冲区 passDescriptors 它们都是不同的 但是屏幕上只有一个对象正在绘制 我不知道我错在哪里 这是绘制函数 dispatch semap
  • Tweepy - 是否可以传输精确的短语?

    TheStreamer filter languages en track Bruno Mars is lovely 有没有办法让它跟踪确切的短语 而不是相关的短语 例如 布鲁诺 马尔斯真的是一个可爱的男人 可能会是我不想要的结果 As p
  • ansible:如何传递多个命令

    我试过这个 command configure chdir src package command usr bin make chdir src package command usr bin make install chdir src
  • 对于加速度计传感器的获取数据片段类型,未定义方法 findViewById(int)

    我正在做我的项目 通过 android 平台中的加速度传感器获取数据 我在最后 3 行代码中有错误代码 确切的错误是 findViewById 不适用于获取数据片段 那么 我如何在 Fragment 中使用 findviewbyId 来获取
  • 如何为 Kafka 生产者配置日志记录?

    我正在使用 Kafka 生产者客户端 并且我的项目中没有任何 log4j 配置 运行时 程序会打印大量我真的不想要的 Kafka 调试日志 因此 我尝试添加 log4j properties 将日志级别设置为 ERROR 如下所示 这似乎不
  • applicationHost.config 文件的模板存储在哪里

    当我使用 VS2015 创建新的 Web 应用程序时 我会在新的 vs 文件夹中创建一个 applicationHost 文件 此文件包含 IIS Express 的配置信息 该文件的模板位于哪里 我在 Windows 10 VS2015
  • Python,Selenium:“元素不再附加到 DOM”

    我正在抓取一个网站 www lipperleaders com http www lipperleaders com 我想提取新加坡的资金详细信息 我已经成功实现了下拉选择并提取了提交选项后出现的第一页的内容 但是当我尝试转到下一页 通过使