Selenium 缓慢向下滚动

2024-02-03

我正在尝试使用 Python 在 javascript 渲染的网页上进行动态网页抓取。

1)但是,只有当我缓慢向下滚动页面时,才会加载元素。

我努力了:

driver.execute_script("window.scrollTo(0, Y)") 

(这不起作用,因为它只滚动到页面上的某个点,错过了其他结果)

and

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

(这不起作用,因为向下滚动到页面末尾时元素不会加载 - 它需要用户缓慢滚动整个页面)

2) 如何让 Selenium 等待所有元素加载完毕后再将它们返回给我?

我知道这个解决方案存在:

myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'IdOfMyElement')))

但是,如果当用户向下滚动页面时结果不断出现,这将如何工作呢?一旦检测到所述元素第一次出现,这段代码不会让 Selenium 停止吗?


使用缓慢向下滚动到页面末尾execute_async_script:

driver.execute_async_script(
            """
        count = 400;
        let callback = arguments[arguments.length - 1];
        t = setTimeout(function scrolldown(){
            console.log(count, t);
            window.scrollTo(0, count);
            if(count < (document.body.scrollHeight || document.documentElement.scrollHeight)){
              count+= 400;
              t = setTimeout(scrolldown, 1000);
            }else{
              callback((document.body.scrollHeight || document.documentElement.scrollHeight));
            }
        }, 1000);"""
        )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium 缓慢向下滚动 的相关文章

随机推荐

  • Rubaxa Sortable 如何获取项目数组

    我知道这很明显 但我无法弄清楚 我正在使用 Rubaxa sortable 并且希望在添加 删除项目或对列表进行排序时使用 ajax 更新我的数据库 var editableList Sortable create document get
  • Prolog-映射(关联数组)

    我正在学习序言 想知道是否有人指导我如何做这个问题 这是这个领域的许多问题中的第一个 知道如何做这个问题将真正帮助我进步 先感谢您 使用 Prolog 定义一个谓词 mapof K M V 这样 当 K 实例化为键 M 实例化为映射而调用时
  • 使用 fetch API 时在 AJAX 调用期间显示微调器

    在我的项目中 我正在迁移到 React 因此不加载 JQuery 由于我不再使用 JQuery 因此对于 AJAX 调用我使用 fetch 使用 JQuery 我可以挂钩 AJAX 调用的开始和结束 因此可以非常轻松地将光标更改为微调器 我
  • 如何在 Design Automation API 中创建数据转换活动?

    我正在制作一个 Web 服务原型 以使用 Autodesk Forge 中的 Design Automation API 转换数据 我的方法是调用一个执行脚本的活动来导入目标数据文件 例如STEP IGES格式 例如 我创建了一个将 STE
  • Mockito 创建模拟对象时抛出 NullPointer

    我有一个集成测试 其中一些设置是使用 Guice 完成的 我正在使用 Mockito 来模拟一些依赖项 到目前为止 这对我来说效果很好 我需要使用 PowerMock 来实现其他一些依赖项 现在 Mockito 正在抛出一个NullPoin
  • React Native ios不显示本地图像

    环境 苹果系统 10 14 6 Xcode 11 0 反应 16 8 6 反应本机 0 60 5 项目文件夹结构 谷歌驱动器图像链接 https drive google com open id 1nvB O5LH2p vq9qyR V7c
  • Java 和 C# 应用程序之间的 SSL 通信

    我的目标是在 Java 服务器和用 C 编写的客户端之间建立安全通信 java服务器代码 System setProperty javax net ssl keyStore cert mySrvKeystore System setProp
  • 递归 http-api 调用后向订阅者发送消息

    我想获取节点列表来创建所述节点对象的数组 以便显示层次结构 基础数据 结构如下所示 ROOT ID 1 NODE ID 2 NODE ID 4 NODE ID 11 NODE ID 3 NODE ID 5 NODE ID 6 NODE ID
  • Django - QuerySet 中的唯一列表

    我有一个过滤后的查询集 其中有一个多对多字段 客户端 我想创建查询集中所有 Client 对象的唯一字典 因此 Projects Queryset Project1 client
  • Xamarin.Forms ListView 通过代码设置 SelectedItem

    我怎样才能设置SelectedItem我的代码中的 ListView 我的问题是 当我在代码中预选择一个项目时 它没有突出显示 ListView 在 xaml 文件中定义
  • 如何手动触发路由解析器

    我在访问之前解析用户帐户片段 of my 用户页面 应用程序路由 component ts path users id component UserComponent resolve user UsersService children p
  • 在 AppleScript 中的“do shell script”对话框中添加进度条

    我正在开发一个用 AppleScript 编写的应用程序 它将 St Bernard 重定向 LaunchDaemon 移动到当前用户的目录 以便用户可以访问家里的任何网站 但让他们在返回学校之前将其放回去 原因是在学校 iPrism 会屏
  • 在 Visual Studio 代码中添加自定义库

    我正在制作一个扩展名为 h 的静态 cpp 库 并且我已在扩展名为 cpp 的不同文件中编写了相同的源代码 现在我想制作一个测试脚本 其中包含我刚刚创建的自定义库 当我使用这个库时 include
  • ng 未被识别为内部或外部命令

    运行 Windows 7 Professional 32 位 I tried running npm install g angular cli both under normal or admin I also tried adding
  • Spring oauth2 hasRole 访问被拒绝

    我对 OAuth2 非常陌生 并尝试在角色 auth server 中构建一台服务器来授权用户 并构建一台保留受保护资源的服务器 我在使用 ResourceServerConfigurerAdapter 时遇到了一些问题 看起来他忽略了从
  • Haskell Random 无法构造无限类型:a1 = IO a1

    我想用 Haskell 生成一个包含 26 个随机整数的列表 其总和为 301 我写下以下内容 import System Random f 1 sum sum f n sum m f n 1 sum m where m randomRIO
  • Bash 忽略特定命令的错误

    我正在使用以下选项 set o pipefail set e 在 bash 脚本中出现错误时停止执行 我有大约 100 行脚本正在执行 我不想检查脚本中每一行的返回代码 但对于一个特定的命令 我想忽略该错误 我怎样才能做到这一点 解决方案
  • 在 iPhone 邮件应用程序上绘制蓝色“未读点”

    有谁有如何绘制苹果邮件应用程序中使用的蓝色 未读点 的示例吗 这个具体来说 使用 Quartz2d 绘制椭圆很简单 但阴影 渐变的巧妙使用使这看起来真正的 3D 我认为邮件中的蓝点实际上是一个图像 我认为位图传送图像会比绘制渐变更快
  • 并行处理批次项目

    我有一个 ItemGroup 并且想要并行处理其所有项目 使用自定义任务或 exe 我可以编写我的任务 exe 来接受整个 ItemGroup 并在内部并行处理其项目 但是 我希望这种并行性能够与 MSBuild 结合使用 maxCpuCo
  • Selenium 缓慢向下滚动

    我正在尝试使用 Python 在 javascript 渲染的网页上进行动态网页抓取 1 但是 只有当我缓慢向下滚动页面时 才会加载元素 我努力了 driver execute script window scrollTo 0 Y 这不起作