• 【selenium学习 -12】selenium操作web页面滚动条


    在平时的测试中,有可能需要定位的元素,不在当前的画面内,就会对滚动条产生一定的操作。对滚动条的操作,实际上也是selenuim对JS的一种操作,正因为selenuim可以对js进行操作,也就有了极大的操作空间

    本文主要介绍两个方法:

    scrollTo(x,y) 
    x表示横向距离,y表示纵向距离
    其中 x,y的距离,都是以(0,0)为起点的
    对比scrollBy() 则是相对当前位置滚动的
    
    
    scrollIntoView()
    函数将被遮挡的元素滚动到可见的屏幕上 scrollIntoView(true)将元素滚动到屏幕中间 scrollIntoView(false)将元素滚动到屏幕底部

    实验例子:打开百度,搜索selenuim,并拉动页面的滚动条。

    from selenium import webdriver
    import time
    
    if __name__ == '__main__':
        driver = webdriver.Chrome()
        driver.get("https://www.baidu.com/")
        driver.maximize_window()
        driver.find_element_by_id("kw").send_keys("selenium")
        driver.find_element_by_id("su").click()
        time.sleep(3)
        '''
         scrollTo(x,y) x表示横向距离,y表示纵向距离
         其中 x,y的距离,都是以(0,0)为起点的
         对比scrollBy() 则是相对当前位置滚动的
        '''
    
        # 将页面拉到最下方,添加等待时间方便在窗口看结果
        print("将页面拉到最下方")
        time.sleep(5)
        driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
    
    
        # 将页面拉到最上方
        print("将页面拉到最上方")
        time.sleep(5)
        driver.execute_script("window.scrollTo(0,0);")
        time.sleep(5)
    # 将页面向下拉取400像素 print("将页面向下拉取400像素") time.sleep(5) driver.execute_script("window.scrollTo(0,400);") ''' scrollIntoView函数将被遮挡的元素滚动到可见的屏幕上 scrollIntoView(true)将元素滚动到屏幕中间 scrollIntoView(false)将元素滚动到屏幕底部 ''' # 将搜索selenium的结果页面的底部page滚动到屏幕中间 print("将搜索selenium的结果页面的底部page滚动到屏幕中间") time.sleep(5) driver.execute_script("document.getElementById('page').scrollIntoView(true)")

    总结:拉动滚动条,其实也是一个操作js的过程,如果有其他的js语句需要执行,也可以采用 driver.execute_script(“js语句”)的方式

  • 相关阅读:
    MySQL Connector Net 6.6.5 Entity Framework 显式预加载 Eager Load Bug
    MySQL 5.6 Replication 复制 FAQ
    MySQL 实现 EF Code First TimeStamp/RowVersion 并发控制
    Linux 系统命令备忘
    MySQL 自增列插入0值的方法
    【转载】将数据存储到SmartObject中
    【转载】使用C#代码发起K2 Blackpearl流程
    【转载】WorkFlow、BPM、SOA
    百度统计喻友平:谈如何更好的优化网站质量
    【转载】浅识K2 blackpearl中SmartObject
  • 原文地址:https://www.cnblogs.com/ronyjay/p/12928598.html
Copyright © 2020-2023  润新知