一. 什么是scrollIntoView
scrollIntoView是一个与页面(容器)滚动相关的API

二. 如何调用
element.scrollIntoView() 参数默认为true
参数为true:调用该函数,页面发送滚动,使element的顶部与视图(容器)顶部对齐

参数为false:使element的底部与视图(容器)底部对齐

三. 使用场景
在python+selenium做元素定位时,有的元素在页面的不可见区域,这时候需要scrollIntoView()将其拖动到可见区域。比如以下,腾讯课堂,进入【近30天最多人在学】代码如下:

import unittest
from time import sleep

from selenium import webdriver


class MyCase(unittest.TestCase):
    def setUp(self) -> None:
        print('start---')

    def tearDown(self) -> None:
        print('end----')

    def test1(self):
        driver = webdriver.Firefox()
        driver.get("https://ke.qq.com/")
        driver.maximize_window()
        target = driver.find_element_by_xpath('//html//body//section[3]//div//div[8]')
        driver.execute_script('arguments[0].scrollIntoView();', target)  # 将该模块与浏览器顶部对齐

        sleep(6)
        driver.execute_script('arguments[0].scrollIntoView(false);', target)  # 将该模块与浏览器底部对齐
        sleep(5)

        driver.quit()


if __name__ == '__main__':
    unittest.main()

(1) driver.execute_script(‘arguments[0].scrollIntoView();’, target) # 将该模块与浏览器顶部对齐,效果图如下:
在这里插入图片描述

(2)driver.execute_script(‘arguments[0].scrollIntoView(false);’, target) # 将该模块与浏览器底部对齐
在这里插入图片描述


JS的Window.scrollTo() 方法

一、定义和用法
scrollTo() 方法可把内容滚动到指定的坐标。

二、语法
scrollTo(xpos,ypos)
参数描述:
xpos 必需。要在窗口文档显示区左上角显示的文档的 x 坐标。
ypos 必需。要在窗口文档显示区左上角显示的文档的 y 坐标。

在这里插入图片描述

        # 滚动到页面最底部
        driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")

        # 然后滚动到页面最顶部
        sleep(10)
        driver.execute_script("window.scrollTo(document.body.scrollHeight,0)")

(1)
driver.execute_script(“window.scrollTo(0,document.body.scrollHeight)”) # 滚动到页面最底部。效果图如下:
在这里插入图片描述

(2) driver.execute_script(“window.scrollTo(document.body.scrollHeight,0)”) # 滚动到页面最顶部 。效果图如下:
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐