【Selenium】一网打尽 小窗口滑动 & 全窗口滑动

这篇具有很好参考价值的文章主要介绍了【Selenium】一网打尽 小窗口滑动 & 全窗口滑动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

收到小伙伴私信,如果web页面中含有小页面,该怎样使用Selenium去滑动小页面,这里总结记录一下。

知识点📖📖

都是JavaScript的知识~~

方法 释义
window.scrollBy(x,y) 滑动指定的x和y的距离
document.body.scrollHeight 元素内容高度的度量
document.querySelector() 根据指定选择器查找元素
getElementById() 根据id获取元素
getElementsByClassName() 根据class name 获取元素
getElementsByName() 根据name 获取元素
getElementsByTagName() 根据 tag name 获取元素

看下图

  • https://developer.mozilla.org/zh-CN/docs/Web/API/Document/querySelector【Selenium】一网打尽 小窗口滑动 & 全窗口滑动

关于页面滑动

  • window对象可以,Element也可以
  • https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollBy
    【Selenium】一网打尽 小窗口滑动 & 全窗口滑动

完整代码

window滑动

// 直接滑动
window.scrollBy(0, document.body.scrollHeight)

元素滑动

// 先定位
element = document.getElementsByClassName("xxx")[0]
// 再滑动
element.scrollBy(0, document.body.scrollHeight)

123

实现🐱‍🏍🐱‍🏍

Selenium执行Js代码

在使用Selenium时候,需要进行页面滑动都是通过执行Js代码的方式。这里也不例外~
Selenium执行Js代码 示例代码如下

from selenium import webdriver

if __name__ == '__main__':
    driver = webdriver.Chrome()
    js_code = 'alert("Hello World!")'
    driver.execute_script(script=js_code)

代码运行效果如下动图所示:

  • 执行了 alert("Hello World!"),在浏览器控制台输入 alert("Hello World!") 也是一样的效果~
    【Selenium】一网打尽 小窗口滑动 & 全窗口滑动
    =========================================================
    【Selenium】一网打尽 小窗口滑动 & 全窗口滑动

全窗口滑动

从下图中可以看到,

  • document.body.scrollHeight,页面高度
  • window.scrollBy(0, 1500),将页面往下滚动1500的高度
    【Selenium】一网打尽 小窗口滑动 & 全窗口滑动

Selenium执行的代码如下:

js_code = 'window.scrollBy(0, 1500)'	# 滑动指定距离
js_code = 'window.scrollBy(0, document.body.scrollHeight)'	# 滑动到底
driver.execute_script(script=js_code)

小窗口滑动

这个比全窗口要多一个操作,那就是先定位到小窗口

这里不针对任何网站,所以只介绍思路,思路是通用的~

假设小窗口的html标签如下,

<div class="hello" id="world" name="frica">

通过上面介绍的 getElementsByClassName()... 可以轻松定位到,

// 这里是三种定位方式,当然,定位的方式还有好几种,不做过多描述!
document.getElementsByClassName("hello")
document.getElementById("world")
document.getElementsByName("frica")

然后再进行滑动就完事了

  • 这里还需要注意一下返回对象类型,有的是数组对象,有的元素对象~
document.getElementsByClassName('hello')[0].scrollBy(0, 1000)
//
document.getElementById("world").scrollBy(0, 1000)
...

Selenium执行的代码如下:

js_code = 'document.getElementsByClassName("hello")[0].scrollBy(0, 1500)'	# 滑动指定距离
js_code = 'document.getElementsByClassName("hello")[0].scrollBy(0, document.body.scrollHeight)'	# 滑动到底
driver.execute_script(script=js_code)

后话

本次分享先到这,
see you.🎈🎈文章来源地址https://www.toymoban.com/news/detail-460911.html

到了这里,关于【Selenium】一网打尽 小窗口滑动 & 全窗口滑动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java HttpClient 实战 GET 与 POST 请求一网打尽

    在Java中, HttpClient 是进行HTTP通信的一个强大工具。它提供了简单而灵活的API,可以轻松地发送HTTP请求并处理响应。在本篇博文中,我们将深入探讨如何使用 HttpClient 执行GET、POST等不同类型的HTTP请求。 首先,确保在项目的 pom.xml 文件中引入 HttpClient 的依赖: 让我们从一个简

    2024年01月17日
    浏览(35)
  • 一网打尽java注解-克隆-面向对象设计原则-设计模式

    注解 :也叫标注,用于包、类、变量、方法、参数上。可以通过反射获取标注。可以在编译期间使用,也可以被编译到字节码文件中,运行时生效。 内置注解 :Java语言已经定义好的注解。 @Overread :用于方法重写。 @Deprecated :标记过时方法。 @SuppressWarnings :指示编译器去

    2024年02月11日
    浏览(34)
  • 动态规划系列 | 最长上升子序列模型(下)| 拦截导弹一网打尽!

    题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。 但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。 某天,雷达捕捉到敌国的导弹来袭。 由于该系统还在试用阶段,所以只有一套

    2024年02月03日
    浏览(35)
  • MQTT 持久会话 vs. Clean Session内幕一网打尽

    不稳定的网络 有限的硬件资源 物联网应用两大难题,MQTT 客户端与服务器的连接可能随时因网络波动及资源限制而异常断开。为解决网络连接断开对通信造成的影响,MQTT 协议提供持久会话功能。 MQTT 客户端在发起到服务器的连接时,可设置是否创建一个持久会话。持久会话

    2024年02月03日
    浏览(35)
  • Java面试、进阶、实践一网打尽(由电子工业出版社出版)

    准备好应对Java开发的新挑战吗?我们为您精选了五本核心书籍,一站式满足您在Java面试准备、技能进阶和实战应用的需求。 这套书籍包括《Offer来了:Java面试核心知识点精讲(第2版)》、《Java面试八股文:高频面试题与求职攻略一本通》、《Spring Boot编程思想(核心卷)》

    2024年02月04日
    浏览(39)
  • Python虚拟环境(pipenv、venv、conda一网打尽)[通俗易懂]

    1. 什么是Python环境 要搞清楚什么是虚拟环境,首先要清楚Python的环境指的是什么。当我们在执行python test.py时,思考如下问题: python哪里来?这个主要归功于配置的系统环境变量 PATH ,当我们在命令行中运行程序时,系统会根据 PATH 配置的路径列表依次查寻是否有可执行文件

    2024年02月08日
    浏览(34)
  • Git新手?这篇文章带你飞!基础操作一网打尽!

    智能化校园:深入探讨云端管理系统设计与实现(一) 智能化校园:深入探讨云端管理系统设计与实现(二) Git(读音为/gɪt/) 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 git是世界上最先进的分布式版本控制系统(没有之一)

    2024年01月17日
    浏览(29)
  • 力扣爆刷第77天--动态规划一网打尽打家劫舍问题

    力扣爆刷第77天–动态规划一网打尽打家劫舍问题 一、198.打家劫舍 题目链接:https://leetcode.cn/problems/house-robber/ 思路:小偷不能连续两家偷,由此可以定义dp[i]表示,小偷经过[0,i]所能获取到的最大金额,那么我们可以得到递推公式: dp[i] = Math.max(dp[i-1], dp[i-2]+nums[i]); 即如果偷

    2024年02月22日
    浏览(34)
  • MYSQL数字函数实操宝典:场景化SQL语句一网打尽

    ​🌈 个人主页: danci_ 🔥 系列专栏: 《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 MYSQL数字函数:不可不知的数据处理利器     mysql -u root -p;  命令说明:👇  1. mysql:     ✨ 这是 MySQL 客户端工具的命令名。它允许用户连接到 MySQL 数据库

    2024年04月15日
    浏览(25)
  • SpringBoot注解详解:从核心到Web,从数据到测试,一网打尽

    总结的了平时学习springboot常用的一些注解,方便以后开发时可以阅览回忆 springboot的常用注解可以分为以下几类: 核心注解 :这些注解是springboot的基础,用于启动、配置和管理springboot应用。 Web MVC注解 :这些注解是基于spring MVC框架的,用于处理Web请求和响应。 数据访问注

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包