当前位置: 首页 > news >正文

Python selenium 页面滚动

 这里通过使用随机数随机决定滚动距离。

from time import sleep

from selenium import webdriver
from selenium.webdriver import ChromeOptions
import random


def scroll(_browser):
    temp_height = 0
    scroll_height = 100
    while True:
        scroll_height += 1000*random.random()
        # _browser.execute_script('window.scrollTo(0, document.body.scrollHeight)')
        _browser.execute_script('window.scrollTo(0, '+str(scroll_height)+')')
        check_height = _browser.execute_script(
            "return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")
        # 如果两者相等说明到底了
        if check_height == temp_height:
            break
        temp_height = check_height
        print(check_height)
        sleep(2)


if __name__ == '__main__':
    try:
        option = ChromeOptions()
        option.add_experimental_option('excludeSwitches', ['enable-automation'])
        browser = webdriver.Chrome(executable_path='chromedriver.exe', options=option)
        # 对指定的url发起请求
        browser.get('https://www.runoob.com/python/python-strings.html')
        sleep(1)
        scroll(browser)

    except Exception as e:
        print(e)

参考文章:

https://cloud.tencent.com/developer/article/1722974

https://www.codeleading.com/article/63594287753/

相关文章:

  • 【FPGA教程案例69】硬件开发板调试9——通过ila在线调试DDS,并通过HDMI接口在显示器上显示正弦波形
  • MeterSphere专题之: 配套的浏览器插件:chrome-extensions
  • 【FPGA教程案例70】硬件开发板调试10——vivado程序固化详细操作步骤
  • 计算机毕业设计ssm青年志愿者社团管理36uiu系统+程序+源码+lw+远程部署
  • 数据结构————树
  • 【操作系统】 第二章 —— 系统调用 中断 异常
  • 移动端测试
  • Cmake、Qt与VS编译VTK(生成QVTK)
  • Java——JDBC(Java DataBase Connectivity)数据库连接技术
  • Express
  • java学习之springcloud之服务调用+服务降级+服务网关篇
  • 常见的设计模式
  • 【我不熟悉的javascript】02. 使用token和refreshToken的管理用户登录状态
  • 备战秋招涵盖二十九大技术栈Java面试最新八股文来袭
  • tensorflow张量运算
  • 深入了解以太坊
  • 收藏网友的 源程序下载网
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • C++类的相互关联
  • Centos6.8 使用rpm安装mysql5.7
  • Create React App 使用
  • java8 Stream Pipelines 浅析
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • PV统计优化设计
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Terraform入门 - 1. 安装Terraform
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 分享几个不错的工具
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 强力优化Rancher k8s中国区的使用体验
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 【云吞铺子】性能抖动剖析(二)
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 说说我为什么看好Spring Cloud Alibaba
  • #if 1...#endif
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (待修改)PyG安装步骤
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (一)kafka实战——kafka源码编译启动
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)jQuery 基础
  • (转)Sql Server 保留几位小数的两种做法
  • *2 echo、printf、mkdir命令的应用
  • ..回顾17,展望18
  • .NET delegate 委托 、 Event 事件
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET企业级应用架构设计系列之应用服务器