【Python自动化】之利用JS操作页面滚动条(新)

如何操作页面中的滚动条,有以下几个方法:

 

一、查找可见元素进行滚动页面(通用)

方法一:

①移动到元素element对象的”顶端“,与当前窗口的”顶部“对齐(默认true)

scrollIntoView_js = "arguments[0].scrollIntoView();" 或 scrollIntoView_js = "arguments[0].scrollIntoView(true);"

复制代码
    # 下滑到可见元素
    scrollIntoView_js = "arguments[0].scrollIntoView();"
# 确定按钮 sortSureBtn_loc = (By.CSS_SELECTOR, ".footer>button.el-button--primary")
# 查找可见元素进行下滑,滑动至最下面的按钮 self.executeScript(loc.scrollIntoView_js, loc.sortSureBtn_loc)
复制代码

结果:

②移动到元素element对象的“底端”,与当前窗口的“底部”对齐

scrollIntoView_js = "arguments[0].scrollIntoView(false);"

复制代码
    # 下滑到可见元素
    scrollIntoView_js = "arguments[0].scrollIntoView(false);"

    # 确定按钮
    sortSureBtn_loc = (By.CSS_SELECTOR, ".footer>button.el-button--primary")



    # 查找可见元素进行下滑,滑动至最下面的按钮
    self.executeScript(loc.scrollIntoView_js, loc.sortSureBtn_loc)
复制代码

结果:

方法二:

location_once_scrolled_into_view,此方法把某个元素滚动到可视范围内

复制代码
def webDriverWait(self, loc):
    """显式等待,查找单元素"""
    WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(loc))
    return self.find_element(loc)

def el_View(self, loc):
        """滑动到可见的元素"""
        self.webDriverWait(loc).location_once_scrolled_into_view

# 确定按钮
sortSureBtn_loc = (By.CSS_SELECTOR, ".footer>button.el-button--primary")

# 查找可见元素进行下滑,滑动至最下面的按钮
self.el_View(loc.sortSureBtn_loc)
复制代码

二、下滑页面内嵌的滚动条(内嵌)

首先定位此滚轮在页面哪个标签下,class="boxcontainer"

复制代码
    def executeScript(self, js, loc):
        """执行JS元素"""
        sleep(1)
        if loc == None:
            return self.driver.execute_script(js)
        else:
            return self.driver.execute_script(js, self.webDriverWait(loc))


# 下滑内嵌滚动条
scrollTop_js = "var q = document.getElementsByClassName('boxcontainer')[0].scrollTop=10000"


# 下滑内嵌滚动条
self.executeScript(loc.scrollTop_js, None)
复制代码

三、 浏览器自带外边的滚动条滑动(外嵌)

①滚动条下拉距离

window.scrollBy(0,100)
# 或者 var q
=document.documentElement.scrollTop=10000

②滚动条上拉距离

window.scrollBy(0,-100):
# 或者 var q
=document.documentElement.scrollTop=0

 

③滚动条滑到底部

window.scrollTo(0,document.body.scrollHeight)

④滚动条滑到顶部

window.scrollTo(document.body.scrollHeight,0)

四、附录

①感谢幸运球与倒霉蛋的《selenium中元素操作之浏览器窗口滚动&网页日期控件操作(js操作)(五)

②感谢的《python+selenium 滚动条/内嵌滚动条循环下滑,判断是否滑到最底部

 

posted @   Owen_ET  阅读(1025)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2020-06-23 【CentOS7】之执行yum命令报错
  1. 1 イエスタデイ(翻自 Official髭男dism) 茶泡饭,春茶,kobasolo
  2. 2 模様 (TV size ver.) Ivy to Fraudulent Game
  3. 3 河口恭吾
  4. 4 愛してる 高鈴
  5. 5 一生所爱 卢冠廷,莫文蔚
  6. 6 世间美好与你环环相扣 柏松
  7. 7 理想三旬 陈鸿宇
  8. 8 不浪漫罪名 王杰
  9. 9 樱花树下 张敬轩
  10. 10 因为你在 达闻西乐队,福禄寿FloruitShow
  11. 11 悬溺 葛东琪
悬溺 - 葛东琪
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 葛东琪

作曲 : 葛东琪

编曲 : 葛东琪

我主张制止不了就放任

这欲望与绝望之争

余温她却喜欢过门

临走呢

还随手关了灯

So funny

Ya i ya i ya i ya i ya i ya i ya

Ya i ya i ya i ya i

Ya i ya i ya i ya i ya i ya i ya

It's so funny ya i ya i

Ya i ya i ya i ya i ya i ya i ya

Ya i ya i ya i ya i

It's so funny ya i ya i ya i ya i ya

Ya i ya i ya i ya i

我主张克制不了就放任

悬上该有的天真

起伏在于喜怒哀乐

松了绳

大不了无人问

Ya i ya i ya i ya i ya i ya i ya

Ya i ya i ya i ya i

Ya i ya i ya i ya i ya i ya i ya

It's so funny ya i ya i

Ya i ya i ya i ya i ya i ya i ya

Ya i ya i ya i ya

It's so funny ya i ya i ya i ya i ya

Ya i ya i ya i ya

有什么话要说

录音师 : 葛东琪

混音师 : 葛东琪

制作人 : 葛东琪

点击右上角即可分享
微信分享提示