• Python selenium 滚动条 详解


      在我们使用Python + selenium 爬虫的时候,会遇到如下报错,原因是  当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。

        selenium.common.exceptions.WebDriverException: Message: unknown error: Element is not clickable at point (219, 1511)

      

        这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。滚动条是无法直接用定位工具来定位的。selenium里面也没有直接的方法去控制滚动条,

        这时候只能借助Js了,还好selenium提供了一个操作js的方法:

        execute_script(),可以直接执行js的脚本。

    一 、控制滚动条高度

    1.滚动条回到顶部: 
     js="var q=document.getElementById(‘id‘).scrollTop=0"   driver.execute_script(js) 2.滚动条拉到底部   js="var q=document.documentElement.scrollTop=10000"   driver.execute_script(js) 3.这里可以修改scrollTop 的值,来定位右侧滚动条的位置,0是最上面,10000是最底部。
      js="var q=document.documentElement.scrollTop=5000"
      driver.execute_script(js)

    二、控制横向滚动条

      1.有时候浏览器页面需要左右滚动(一般屏幕最大化后,左右滚动的情况已经很少见了)。
      2.通过左边控制横向和纵向滚动条scrollTo(x, y)

        js = "window.scrollTo(100,400);"     driver.execute_script(js)
      
    3.第一个参数x是横向距离,第二个参数y是纵向距离

    附:

      

    # 移动到元素element对象的“顶端”与当前窗口的“顶部”对齐  
    driver.execute_script("arguments[0].scrollIntoView();", element);  
    driver.execute_script("arguments[0].scrollIntoView(true);", element);  
    
    # 移动到元素element对象的“底端”与当前窗口的“底部”对齐  
    driver.execute_script("arguments[0].scrollIntoView(false);", element);  
    
    # 移动到页面最底部  
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight)");  
    
    # 移动到指定的坐标(相对当前的坐标移动)
    driver.execute_script("window.scrollBy(0, 700)");   
    # 结合上面的scrollBy语句,相当于移动到700+800=1600像素位置  
    driver.execute_script("window.scrollBy(0, 800)");  
    
    # 移动到窗口绝对位置坐标,如下移动到纵坐标1600像素位置  
    driver.execute_script("window.scrollTo(0, 1600)");  
    # 结合上面的scrollTo语句,仍然移动到纵坐标1200像素位置  
    driver.execute_script("window.scrollTo(0, 1200)");
  • 相关阅读:
    设计模式系列
    设计模式系列
    【ABAP系列】SAP ABAP DYNP_VALUES_UPDATE 更新屏幕字段的函数及用法
    【HANA系列】SAP HANA 2.0简介
    【HANA系列】SAP HANA Studio使用insufficient privilege 问题
    【HANA系列】SAP HANA Studio出现"Fetching Children..."问题
    【ABAP系列】SAP ABAP smartforms设备类型CNSAPWIN不支持页格式ZXXX
    【BW系列】SAP BW实时抽取ECC数据的实现
    【ABAP系列】SAP ABAP 行列转换的方法
    【HANA系列】SAP HANA数据处理的理解与分析一
  • 原文地址:https://www.cnblogs.com/xuchunlin/p/8135520.html
Copyright © 2020-2023  润新知