前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python自动化之JS处理滚动条

python自动化之JS处理滚动条

作者头像
Python研究者
发布2020-09-28 11:39:09
5K0
发布2020-09-28 11:39:09
举报
文章被收录于专栏:Python研究者Python研究者

滚动条操作 浏览器滚动条并没有提供相应的操作方法。在这种情况下,就可以借助JavaScript也就是JS来控制浏览器的滚动条。 WebDriver提供了execute_script()方法来执行JavaScript代码。 js="window.scrollTo(100,450);" driver.execute_script(js) 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。 这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。 滚动条是无法直接用定位工具来定位的。selenium里面也没有直接的方法去控制滚动条,这时候只能借助JS了,还好selenium提供了一个操作js的方法: execute_script(),可以直接执行js的脚本。 --scrollHeight 获取对象的滚动高度。 --scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。 --scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。 --scrollWidth 获取对象的滚动宽度。

代码参考:

代码语言:javascript
复制
# coding:utf-8
from time import sleep
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
print(driver.name)

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

# ## 回到顶部
# def scroll_top():
#     if driver.name == "chrome":
#        js = "var q=document.body.scrollTop=0" # Chrome浏览器不管用的话,可以这样试试
#     else:
#         js = "var q=document.documentElement.scrollTop=0"
#     return driver.execute_script(js)

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

# 滚动到底部
js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
sleep(5)

# 聚焦元素
target = driver.find_element_by_link_text("hao123")
driver.execute_script("arguments[0].scrollIntoView();", target)
sleep(3)
driver.quit()

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫数据分析挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档