zoukankan      html  css  js  c++  java
  • 【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语句”)的方式

  • 相关阅读:
    毕设进度21
    毕设进度20
    Javascript高级程序设计第三版-笔记
    前端踩过的坑
    thinkphp笔记
    PHP 发邮件《转》
    smarty笔记
    jquery笔记
    JS笔记
    php万年历
  • 原文地址:https://www.cnblogs.com/ronyjay/p/12928598.html
Copyright © 2011-2022 走看看