python⾃动化之JS处理滚动条
滚动条操作
浏览器滚动条并没有提供相应的操作⽅法。在这种情况下,就可以借助JavaScript也就是JS来控制浏览器的滚动条。
WebDriver提供了execute_script()⽅法来执⾏JavaScript代码。
js="window.scrollTo(100,450);"
当页⾯上的元素超过⼀屏后,想操作屏幕下⽅的元素,是不能直接定位到,会报元素不可见的。
这时候需要借助滚动条来拖动屏幕,使被操作的元素显⽰在当前的屏幕上。
滚动条是⽆法直接⽤定位⼯具来定位的。selenium⾥⾯也没有直接的⽅法去控制滚动条,这时候只能借助JS了,还好selenium提供了⼀个操作js的⽅法:
execute_script(),可以直接执⾏js的脚本。
--scrollHeight 获取对象的滚动⾼度。
--scrollLeft 设置或获取位于对象左边界和窗⼝中⽬前可见内容的最左端之间的距离。
--scrollTop 设置或获取位于对象最顶端和窗⼝中可见内容的最顶端之间的距离。
--scrollWidth 获取对象的滚动宽度。
代码参考:python⾃动化之JS处理滚动条
# coding:utf-8
from time import sleep
from selenium import webdriver
driver = webdriver.Chrome()
<("www.baidu")
js arguments
print(driver.name)
# 滚动到底部
js = "window.scrollTo(0,document.body.scrollHeight)"
# ## 回到顶部
# def scroll_top():
#    if driver.name == "chrome":
#        js = "var q=document.body.scrollTop=0" # Chrome浏览器不管⽤的话,可以这样试试
#    else:
#        js = "var q=document.documentElement.scrollTop=0"
#    ute_script(js)
# 滚动到顶部
js = "window.scrollTo(0,0)"
sleep(5)
# 滚动到底部
js="var q=document.documentElement.scrollTop=10000"
sleep(5)
# 聚焦元素
target = driver.find_element_by_link_text("hao123")
sleep(3)
driver.quit()
关注:Python爬⾍数据分析挖掘,免费获取更多开源项⽬源码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。