web⾃动化,下拉滚动到底部顶部和下拉滚动到指定的元素
在web⾃动化,经常会遇到页⾯显⽰内容太多的时候,页⾯就会出现滚动条,⼀般有两种⽅式进⾏下拉,⼀种是直接下拉到底部/顶部/中部,或者直接给定元素,直接下拉到指定元素的位置。
两种⽅式的共同点:
两种⽅式,都是通过selenium框架,执⾏js代码的⽅式来实现,只是传递的js代码不⼀样
ute_script(js)
第⼀种:⾃定义直接下拉到顶部或底部,根据需要进⾏选择
滚动到底部:window.scrollTo(0, document.body.scrollHeight);
滚动到页⾯中间:window.scrollTo(0, document.body.scrollHeight/2);
滚动到页⾯顶部:window.scrollTo(0, document.body.scrollHeight/document.body.scrollHeight);
def scroll_to(self, type):
'''
移动浏览器的滚动条,滚动屏幕到百分⽐的位置
⽬前分为移动到末尾、移动到中间、移动到顶部。以及每次移动1/5,这种只能使⽤于浏览器的滚动条不在body⾥⾯,若有修改过滚动条的属性,⽆法进⾏下滑 :param type:
:return:
'''
if type == 'end':
# 移动到末尾
js = "window.scrollTo(0, document.body.scrollHeight);"
网站底部代码js特效elif type == 'middle':
# 移动到中间
js = "window.scrollTo(0, document.body.scrollHeight/2);"
elif type == 'top':
# 移动到顶部
js = "window.scrollTo(0, document.body.scrollHeight/document.body.scrollHeight);"
else:
# 暂时设置移动 1/5
js = "window.scrollTo(0, document.body.scrollHeight/5);"
try:
ute_script(js)
except Exception as e:
self.save_imgs(model=type)
raise
这种下滑⽅式在滚动条在body⾥⾯的时候,进⾏下滑会没响应
滚动条不在body⾥⾯,这个时候,执⾏下滑是正常的
当滚动条在body⾥⾯的时候,下滑操作就没反应了,这个时候,可以指定元素的位置,进⾏下滑操作
第⼆种:给定元素的位置,下滑到该元素的位置(建议使⽤!)
try:
ute_script("arguments[0].scrollIntoView();", sroll_element)
except Exception as e:
self.save_imgs(model)
raise
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论