iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python自动化17-JS处理滚动条
  • 124
分享到

python自动化17-JS处理滚动条

滚动条pythonJS 2023-01-30 22:01:37 124人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

前言     selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助js来完成了。 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。 这时候需要借助滚动条来拖动屏幕,使被

前言

    selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助js来完成了。

常见场景:

当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。

这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。

滚动条是无法直接用定位工具来定位的。selenium里面也没有直接的方法去控制滚动条,

这时候只能借助J了,还好selenium提供了一个操作js的方法:

execute_script(),可以直接执行js的脚本。



一、javascript简介


1.JavaScript是世界上最流行的脚本语言,因为你在电脑、手机、平板上浏览的所有的网页,


以及无数基于HTML5的手机App,交互逻辑都是由JavaScript驱动的。简单地说,


JavaScript是一种运行在浏览器中的解释型的编程语言


那么问题来了,为什么我们要学JavaScript?
2.有些特殊的操作selenium2+python无法直接完成的,JS刚好是这方面的强项,所以算是一个很


好的补充。对js不太熟悉的,可以网上找下教程,简单了解些即可。


Http://www.w3school.com.cn/js/index.asp4


二、控制滚动条高度

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.这里可以修改scrollTop 的值,来定位右侧滚动条的位置,0是最上面,10000是最底部。

版权所有,微信公众号:yoyoketang

三、横向滚动条
1.有时候浏览器页面需要左右滚动(一般屏幕最大化后,左右滚动的情况已经很少见了)。
2.通过左边控制横向和纵向滚动条scrollTo(x, y)js = "window.scrollTo(100,400);"

driver.execute_script(js)

3.第一个参数x是横向距离,第二个参数y是纵向距离

四、Chrome浏览器

1.以上方法在Firefox上是可以的,但是用Chrome浏览器,发现不管用。
谷歌浏览器就是这么任性,不听话,于是用以下方法解决谷歌浏览器滚动条的问题。

2.Chrome浏览器解决办法:

js = "var q=document.body.scrollTop=0"
driver.execute_script(js)

 

五、元素聚焦
1.虽然用上面的方法可以解决拖动滚动条的位置问题,但是有时候无法确定我需要操作的元素

在什么位置,有可能每次打开的页面不一样,元素所在的位置也不一样,怎么办呢?

2.这个时候我们可以先让页面直接跳到元素出现的位置,然后就可以操作了。同样需要借助JS去实现。
3.元素聚焦:

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

 

六、获取浏览器名称:driver.name

1.为了解决不同浏览器操作方法不一样的问题,可以写个函数去做兼容。

2.先用driver.name获取浏览器名称,然后用if语句做个判断

七、兼容性
1.兼容谷歌和firefox/IE

九、参考代码如下:
# coding:utf-8
from selenium import WEBdriver
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
print driver.name
## 回到顶部
#def scroll_top():
#     if driver.name == "chrome":
#        js = "var q=document.body.scrollTop=0"
#     else:
#         js = "var q=document.documentElement.scrollTop=0"
#     return driver.execute_script(js)
# 拉到底部
#def scroll_foot():
#    if driver.name == "chrome":
#         js = "var q=document.body.scrollTop=10000"
#     else:
#         js = "var q=document.documentElement.scrollTop=10000"
#     return driver.execute_script(js)

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

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


# 聚焦元素
target = driver.find_element_by_xxxx()
driver.execute_script("arguments[0].scrollIntoView();", target)

JS功能还是很强大的,它还可以处理富文本、内嵌滚动条的问题,下次有空了再整理下。

学习过程中有遇到疑问的,可以加selenium(Python+java) QQ群交流:

 

</div>

--结束END--

本文标题: python自动化17-JS处理滚动条

本文链接: https://www.lsjlt.com/news/179612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python自动化17-JS处理滚动条
    前言     selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了。 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。 这时候需要借助滚动条来拖动屏幕,使被...
    99+
    2023-01-30
    滚动条 python JS
  • JS如何判断滚动条的滚动方向
    小编给大家分享一下JS如何判断滚动条的滚动方向,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!以下代码实现判断页面的滚动条的滚动方...
    99+
    2024-04-02
  • Python自动化开发学习17-jQue
    jQuery 是 JavaScript 的一个类库,类似 python 中的模块。jQuery在线手册:http://jquery.cuishifeng.cn/官网:http://jquery.com/ 版本选择 目前jQuery有三个大...
    99+
    2023-01-31
    Python jQue
  • JS如何实现自定义滚动条效果
    这篇文章给大家分享的是有关JS如何实现自定义滚动条效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下<head>  <meta ...
    99+
    2024-04-02
  • js实现公告自动滚动
    本文实例为大家分享了js实现公告自动滚动的具体代码,供大家参考,具体内容如下 html <div class="test003">           <div ...
    99+
    2024-04-02
  • 原生js如何封装自定义滚动条
    这篇文章主要介绍了原生js如何封装自定义滚动条,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果图:代码如下:<!doctype&nb...
    99+
    2024-04-02
  • 详解Python自动化之文件自动化处理
    一、生成随机的测验试卷文件 假如你是一位地理老师, 班上有 35 名学生, 你希望进行美国各州首府的一个小测验。不妙的是,班里有几个坏蛋, 你无法确信学生不会作弊。你希望随机调整问...
    99+
    2024-04-02
  • JS如何监听滚动和id自动定位滚动
    这篇文章主要介绍了JS如何监听滚动和id自动定位滚动,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。本文主要介绍原生JS进行滚动监听和id定位...
    99+
    2024-04-02
  • Python中TkinterScrollbar滚动条(窗口滑动条)
    目录简介语法参数简介 滚动条小部件用于向下滚顶其他小部件的内容,如列表框,文本和画布,但是,我们也可以为Entry小部件创建水平滚动条,常常被用于实现文本,画布和列表框的滚动 可以配...
    99+
    2023-03-03
    Python Tkinter Scrollbar滚动条 Python 滚动条
  • js如何实现垂直滚动条
    这篇文章主要为大家展示了“js如何实现垂直滚动条”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js如何实现垂直滚动条”这篇文章吧。效果图:代码如下:<!D...
    99+
    2024-04-02
  • DIV如何实现自动滚动功能及滚动条颜色修改
    这篇文章将为大家详细讲解有关DIV如何实现自动滚动功能及滚动条颜色修改,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.DIV 自动滚动<script t...
    99+
    2024-04-02
  • js如何实现浏览器滚动条
    小编给大家分享一下js如何实现浏览器滚动条,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果图:代码如下:<!DOCTYP...
    99+
    2024-04-02
  • js怎么控制iframe滚动条位置
    可以使用以下JS代码来控制iframe滚动条的位置:```javascript// 获取iframe元素var iframe = d...
    99+
    2023-09-21
    js
  • Python 自动化处理Excel和Word实现自动办公
    今天我来分享一些Python办公自动化的方法,欢迎收藏学习,喜欢点赞支持,欢迎畅聊。 Openpyxl Openpyxl 可以说是 Python 中最通用的工具模块了,它使与 Exc...
    99+
    2024-04-02
  • js如何实现彩色条纹滚动条效果
    这篇文章主要介绍了js如何实现彩色条纹滚动条效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。左侧可用调色板选择条纹颜色效果图:代码如下:&...
    99+
    2024-04-02
  • 怎么样自定义CSS滚动条
    这篇文章将为大家详细讲解有关怎么样自定义CSS滚动条,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。0.需求有的时候我们不想使用浏览器默认的滚动条样式,因为不够定制化和美观。那么如何自定义滚动条的样式呢?下...
    99+
    2023-06-08
  • js实现列表自动滚动循环播放
    本文实例为大家分享了js实现列表自动滚动循环播放的具体代码,供大家参考,具体内容如下 1.实现效果图 鼠标移入,暂停滚动; 鼠标移出,继续滚动; 2.原理 要实现无缝衔接,在原有u...
    99+
    2024-04-02
  • js/jquery如何控制页面动态加载数据和滑动滚动条自动加载事件
    这篇文章主要介绍了js/jquery如何控制页面动态加载数据和滑动滚动条自动加载事件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。页面滚动动...
    99+
    2024-04-02
  • Python自动化运维之异常处理
    1、异常异常就是非正常状态,在Python中使用异常对象来表示异常。若程序在编译或运行过程中发生错误,程序的执行过程就会发生改变,抛出异常对象,程序流进入异常处理。如果异常对象没有被处理或捕捉,程序就会执行回溯(Traceback)来终止程...
    99+
    2023-01-31
    异常 Python
  • CSS怎么自定义滚动条样式
    本篇内容介绍了“CSS怎么自定义滚动条样式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!相信很多人都遇到过...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作