selenium 滑动屏幕常用 js 语句

2644 篇文章 26 订阅
2304 篇文章 14 订阅

UI 自动化中经常会用到屏幕滑动,selenium 提供的接口很少。记录一下常用的 js 语句以免忘记。

1)从 (0,0) 滑动 x,y 距离

window.scroll(x,y)

2)从当前位置滑动 x,y 距离

window.scrollBy(x,y)

3)滑动到底部位置

window.scroll(0, document.documentElement.scrollHeight)

4)滑动到顶部位置

window.scroll(0, 0)

5)滑动元素至顶部对齐,可以使用 selenium 自带的,也可以用 js

element.location_once_scrolled_into_view
或者
driver.execute_script('arguments[0].scrollIntoView({block: "start"})', element)
或者
driver.execute_script('arguments[0].scrollIntoView(true)', element)

6)滑动元素至屏幕中间

driver.execute_script('arguments[0].scrollIntoView({block: "center"})', element)

7)滑动元素至屏幕底部对齐

driver.execute_script('arguments[0].scrollIntoView({block: "end"})', element)或者driver.execute_script('arguments[0].scrollIntoView(flase)', element)

8)缩放页面

js = "document.body.style.zoom='60%'"

9)封装一下便于调用

import timefrom selenium import webdriverimport osfrom selenium.webdriver.chrome.options import Optionsclass Scroll(object):
    """
    browser = driver
    """
    browser: object = None

    @property
    def driver(self):
        return self.__class__.browser

    @driver.setter
    def driver(self, driver):
        self.__class__.browser = driver

    @classmethod
    def scroll(cls, x, y):
        """
        移动x,y距离(以 0,0)为坐标
        :param x:
        :param y:
        :return:
        """
        script = f"window.scroll({x},{y})"
        cls.browser.execute_script(script)

    @classmethod
    def scroll_to_bottom(cls):
        """
        移动到底部
        :return:
        """
        full_screen_height = "document.documentElement.scrollHeight"
        script = f"window.scroll(0, {full_screen_height})"
        cls.browser.execute_script(script)

    @classmethod
    def scroll_to_top(cls):
        """
        回到顶部
        :return:
        """
        script = "window.scroll(0, 0)"
        cls.browser.execute_script(script)

    @staticmethod
    def scroll_to_element_top(element):
        """
        滑动至顶部对齐
        :param element:
        :return:
        """
        var = element.location_once_scrolled_into_view

    @classmethod
    def scroll_to_element_center(cls, element):
        """
        滑动至中间对齐
        :param element:
        :return:
        """
        cls.browser.execute_script('arguments[0].scrollIntoView({block: "center"})', element)

    @classmethod
    def scroll_to_element_bottom(cls, element):
        """
        滑动至底部对齐
        :return:
        """
        cls.browser.execute_script('arguments[0].scrollIntoView(false)', element)chromedriver = os.getenv("CHROME_DRIVER")options = Options()options.add_argument("--start-maximized")driver = webdriver.Chrome(executable_path=chromedriver, options=options)driver.get("file:///C:/demo.html")element = driver.find_element_by_id("demo")Scroll.browser = driverScroll.scroll_until_element_displayed(element)time.sleep(3)Scroll.scroll_to_element_top(element)time.sleep(3)Scroll.scroll_to_element_center(element)time.sleep(3)Scroll.scroll_to_element_bottom(element)time.sleep(3)driver.quit()

最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

我推荐一个【Python自动化测试交流群:746506216】,大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,助你快速进阶Python自动化测试/测试开发,走向高薪之路。

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值