selenium中JS如何处理滚动条

Python+selenium JS处理滚动条和元素聚焦 JS处理滚动条 通过webdriver提供的execute_script()方法执行JS脚本操作滚动条 右侧滚动条 Firefox浏览器和Chrome浏览器用的语法不一样,下面区分列出来,貌似谷歌浏览器71版通用火狐了 js ="var q=document.documentElement.scrollTop=10000" # Firefox浏览器滚动到底部 js ="var ... 阅读详情

前言

什么是JS?

JS就是JavaScript;

JavaScript 是世界上最流行的脚本语言;

JavaScript 是属于 web 的语言,它适用于 PC、笔记本电脑、平板电脑和移动电话;

JavaScript 被设计为向 HTML 页面增加交互性;

许多 HTML 开发者都不是程序员,但是 JavaScript 却拥有非常简单的语法。几乎每个人都有能力将小的 JavaScript 片段添加到网页中。

JS传送门:http://www.w3school.com.cn/b.asp

一、JS处理滚动条问题

1、滚动条回到顶部:

js="var q=document.getElementById('id').scrollTop=0"

driver.execute_script(js)

或者

js="var q=document.documentElement.scrollTop=0"

driver.execute_script(js)

2、滚动条拉到底部:

js="var q=document.getElementById('id').scrollTop=10000"

driver.execute_script(js)

或者

js="var q=document.documentElement.scrollTop=10000"

driver.execute_script(js)

3、滚动条拉到指定位置(具体元素):

target = driver.find_element_by_id("id_keypair")

driver.execute_script("arguments[0].scrollIntoView();", target)

4、通过模拟键盘DOWN(↓)来拖动:

driver.find_element_by_id("id").send_keys(Keys.DOWN)

image

5、scrollTo函数

--scrollHeight 获取对象的滚动高度。

--scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。

--scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。

--scrollWidth 获取对象的滚动宽度。

滚动到底部

js = "window.scrollTo(0,document.body.scrollHeight)"

driver.execute_script(js)

滚动到顶部

js = "window.scrollTo(0,0)"

driver.execute_script(js)

image

二、参考代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File    : jss.py
# @Software: PyCharm
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
url = 'http://www.cnblogs.com/sanzangTst/'
browser = webdriver.Firefox()
browser.get(url)
time.sleep(3)
# 拉到底部
js="var q=document.documentElement.scrollTop=10000"
browser.execute_script(js)

# 回到顶部
js="var q=document.documentElement.scrollTop=0"
browser.execute_script(js)

# 拖到指定位置
target = browser.find_element_by_id("homepage1_HomePageDays_DaysList_ctl05_DayList_TitleUrl_0")
browser.execute_script("arguments[0].scrollIntoView();", target)

#滚动到底部
js = "window.scrollTo(0,document.body.scrollHeight)"
browser.execute_script(js)

#滚动到顶部
js = "window.scrollTo(0,0)"
browser.execute_script(js)

今天的分享到这里,对自动化感兴趣的同学,欢迎加QQ群175317069,一起学习,相互讨论。

群内已经有小伙伴将知识体系整理好(源码,笔记,PPT,学习视频),欢迎加群免费领取资料

分享给喜欢自动化,有梦想成为大牛的Tester们,希望能够帮助到你们。

Selenium:操作JS JavaScript 1、JavaScript是Web的编程语言,所有现代的HTML页面都会使用JavaScript ⑴JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页 2、一个完整的网页是由HTML、CSS、JavaScript等组成的 ⑴HTML:相当于骨架,决定了网页的基本结构 ⑵CSS:相当于表现,决定了网页的表现形式 ⑶JavaScript:相当于动作,决定了网页能做什么操作 3、把一个网页比做成一个人的话 ... 阅读详情

相关推荐

【Qt串口调试助手】1.1 - Qt5编写串口调试助手,Qt串口编程

这章来学习串口数据流操作。仿照成品制作一个自己用Qt编写的串口助手。 1. 布局UI界面 创建QWidget工程,布局UI界面:拖入2个 Plain Text Edit,作为串口数据的接收显示和发送框。 拖入几个 Combo Box 、Label 和 Push Button,使用两个Widget进行布局。如下所示。 将接收区的 Plain Text Edit,属性勾选上 readOnly,使其运行时不会被人为的输入操作影响。 加入一些弹簧,使布局美观。(有必要可以加设置不能调整..

Mark_md的博客 9274

Python爬虫使用selenium爬取qq群的成员信息(全自动实现自动登陆)

EC.presence_of_all_elements_located((By.CLASS_NAME, ‘list’)))groupMemberNum = eval(browser.find_element_by_id(‘groupMemberNum’).text)count = groupMemberNum // 21 + 1if count > 2:count = 1time.sleep(2)trs = browser.find_elements_by_class_name(‘mb’)if trs:fo

2301_79098886的博客 1059

UDS(三)网络层时间参数

网络层定义了N_Ar、N_As、N_Br、N_Bs、N_Cr、N_Cs六个时间参数。 网络层在检测到错误的时间传递至上层使用者 1.当N_As 超时时,即发送方没有及时发送出N_PDU,系统将放弃信息的接收并传递<N_Result> = <N_TIMEOUT_A>的N_USData.comfirm指示 2.当N_Ar超时时,即接收方没有及时发送出N_PDU,系统将放弃信息的接收并传递<N_Result> = <N_TIMEOUT_A>的N_USData.co

weixin_44522306的博客 1万+

document.documentElement.scrollTop

在标准的w3c下,document.body.scrollTop恒为0,需要用document.documentElement.scrollTop来代替;js中每个载入浏览器的HTML文档都会成为Document对象,documentElement 对应的是 html 标签,如果发现两个高度不一样,是css设置的问题,你的html高度不一定高于body。用body查看,其中clientHeight即为body的css高度,而不是:document.body.scrollTop;...

weixin_44283589的博客 8266

从ROS2到ROS1:Lightning-LM激光SLAM模块的移植实践与核心代码解析

本文详细解析了将高性能激光SLAM算法Lightning-LM从ROS2移植到ROS1的完整实践过程。针对ROS1与ROS2在节点初始化、话题通信、参数服务器及TF发布等核心API的差异,文章提供了loc_system和slam模块的核心代码改造示例,并给出了适配catkin的CMakeLists.txt与package.xml配置方案,帮助开发者在现有ROS1生态中高效集成先进的SLAM模块。

weixin_29224529的博客 172

ollama服务暴露公网?三步搞定Nginx反向代理配置(避坑指南)

本文详细介绍了如何通过Nginx反向代理安全地将Ollama服务暴露到公网,避免直接修改OLLAMA_HOST带来的安全隐患。文章提供了从SSL证书部署到高级安全加固的全流程实战指南,包括IP白名单、基础认证、速率限制等企业级安全措施,帮助用户实现安全可靠的外部访问。

wood5的博客 178

python爬虫学习笔记3

【1、selenium】 1、什么是selenium? (1) Selenium是一个用于Web应用程序测试的工具 (2) Selenium测试直接运行在浏览器中,就像真正的用户在操作一样 (3) 支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驱动真实浏览器完成测试 (4) selenium也是支持无界面浏览器操作的。 2、为什么使用selenium? 模拟浏览器功能,自动执行网页中的js代码,实现动态加载

qq_42765393的博客 4351

NAO V6 开发环境的配置(附所有文件)

NAO V6开发环境配置前言环境Robot SettingsChoregraphe 2.8.5.10python2.7+naoqi2.8+opencv4.1.0putty与FileZilla 前言 学校的机器人摸索了一段时间,之前摸爬滚打探索环境,之前没接触这类机器人可能会非常艰辛,希望能给需要的人一些帮助。Nao与pepper通用 环境 win10(x64)+naoqi2.8 1、Robot S...

wbhhello的博客 3220

[489]selenium的一些js操作

控制滚动条高度 1.滚动条回到顶部: js="var q=document.getElementById('id').scrollTop=0" driver.execute_script(js) 2.滚动条拉到底部 js="var q=document.documentElement.scrollTop=10000" driver.execute_script(js) 3.这里可以修改scr...

周小董 1062

如何在 Ubuntu 24.04 LTS 上安装 SSH 服务器?

Ubuntu是一个基于Debian的开源Linux操作系统,由Canonical Ltd.开发和维护。Ubuntu致力于提供用户友好、稳定且安全的操作系统环境,适用于个人用户、企业和服务器等不同场景。Ubuntu 24.04 LTS是Ubuntu发布的一个长期支持版本,LTS代表长期支持(Long Term Support)。这意味着Ubuntu 24.04 LTS将获得长达5年的安全更新和维护支持,使其成为企业和个人用户的理想选择。

网络技术联盟站 5888

Codex,Copilot 是什么

GitHub Copilot是什么 **GitHub Copilot** 是一款由 **GitHub** 和 **OpenAI** 合作开发的 **AI 代码辅助工具**,它基于 **OpenAI Codex 技术**,能够根据上下文自动生成代码建议,大幅提升编程效率

ZhangJiqun&191cm&85kg 6826

滚动高度和位置

js 滚动高度和位置,返回顶部,导航栏固定案例

qq_53245972的博客 1821

无线通信技术及其在机器人中的应用

本文系统阐述了无线通信技术在机器人领域的应用框架与技术选型。首先构建了无线通信的三层理论架构:物理层解决信号传输问题,链路层处理接入控制,网络层实现组网管理。随后详细分析了主流无线技术的特性与适用场景:BLE适用于低功耗传感器节点,Wi-Fi适合高带宽视频传输,5G专网满足工业AGV的广域覆盖需求,星闪技术凭借20μs超低时延和4096台并发连接能力,为高端机器人应用提供突破性解决方案。通过鄂尔多斯隆基5G专网等典型案例,验证了5G在工业AGV规模化部署中的优势,并展望了通感算智融合、星闪+5G协同等未来发

weiyvyy的博客 1116

selenium之js处理滚动条操作

selenium之js处理滚动条操作 在网页当中,页面存在滚动条,而你要操作的元素在当前屏幕可见区域之外。那么需要使用滚动条滚动到该元素处,然后再操作它。 selenium当中的使用execute_script方法执行js语句来实现滚动给你。 execute_script(“arguments[0].scrollIntoView();”,target) 其中target为find_element_by_xx找到的元素对象 几种滚动方式如下: 移动到元素element对象的“底端”与当前窗口的“底部”对齐

guiyin1150的博客 5250

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Selenium中JS处理滚动条

UI自动化中经常会遇到元素识别不到,找不到的问题,原因有很多,比如不在iframe里,xpath或id写错了等等;但有一种是在当前显示的页面元素不可见,拖动下拉条后元素就出来了。 用Python写路由器控制脚本的时候遇到这个问题,Selenium提示如下: Message: Element is not clickable at point (1191.5, 143). Other eleme...

星空 3264

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python滚动条长度_python+selenium+js 处理滚动条

selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了。常见场景:当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。滚动条是无法直接用定位工具来定位的。selenium里面也没有直接的方法去控制滚动条,这时候只能借助J了,还好selenium提供了一个操作js的方法:...

weixin_32927369的博客 665

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python+selenium JS处理滚动条

selenium+python使用JS处理页面滚动条

weixin_46196270的博客 603

第三十三:Selenium-JS处理页面内嵌滚动条

第三十三:Selenium-JS处理页面内嵌滚动条

欢迎来到本博客! 197

【基于python实现UI自动化】3.3 Selenium - JS处理浏览器滚动条

python-UI自动化之selenium元素定位1.0 selenium工具介绍2.0 selenium环境搭建3.0 selenium常见8大元素定位3.1 selenium通过By定位元素3.2 selenium通过JS定位元素3.3 JS处理浏览器滚动条控制浏览器的高度控制横向滚动条结尾 1.0 selenium工具介绍 1.0 selenium工具介绍 2.0 selenium环境搭建 2.0 selenium环境搭建 3.0 selenium常见8大元素定位 3.0 selenium - web

枫的等待 1105

第三十二:Selenium-JS处理页面滚动条

第三十二:Selenium-JS处理页面滚动条

欢迎来到本博客! 139

selenium - Js处理滚动条操作

# 11.Js处理滚动条操作 driver.execute_script('arguments[0].scrollIntoView();',target) target 为find_element_by_XXX找到的元素对象# (1)先通过selenium 先找到元素# (2)通过js语句,将元素滚动到可见区域中# 移动到元素element对象的”底端“ 与当前窗口的”底部“对齐driver.ex...

weixin_34290000的博客 369

python+selenium+js 处理滚动条

selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了。 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。 这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。 滚动条是无法直接用定位工具来定位的。selenium里面也没有直接的方法去控制滚动条, 这时候只能借助J了,还好selen...

aiduohao2755的博客 123

selenium3页面交互-JS处理滚动条

selenium3页面交互-JS处理滚动条

weixin_41812355的博客 132

Selenium页面交互之JS处理滚动条

selenium页面交互过程,操作中常见需要点击某个元素,但是页面看不到该元素,需要滑动滚动条,滑到可见处,在进行下一步的操作,那么UI自动化中我们就是使用到execute_script...

596
上一篇: 什么是DevOps的三步工作法?
下一篇: 软件测试经典面试题(3)
TestingGDR
博客等级 码龄8年 496粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值