因為用心,才會喜歡

粥雨

Selenium - 元素操作(2) - 页面滚动条

Selenium - 元素操作


函数滚动

  • 一般元素定位,元素如果不在浏览器的可视位置(即可见只是不在可视位置),会自动把元素滚动到可视位置,但也有不会自己滚动的(比较少)。

    • 那我们就可以用selenium的 location_once_scrolled_into_view 就可以滚动到某个元素处,也就是滚动直到这个元素出现在屏幕里。
    # 获取页面元素
    element = driver.find_element_by_id('kw')
    
    # 移动元素element对象,与当前窗口的中心对齐
    ## 不需要增加括号
    element.location_once_scrolled_into_view
    

JS滚动

  • 除了代码方式以外,也可以用js来滚动窗口。五个常见方法:

    • 移动到元素 element对象的顶端当前窗口的顶部对齐 :

      # 获取页面元素
      element = driver.find_element_by_id('kw')
      
      driver.execute_script("arguments[0].scrollIntoView();", element)
      

    • 移动到元素 element对象当前窗口的中心对齐:

      element = driver.find_element_by_id('kw')
      driver.execute_script("arguments[0].scrollIntoView({block:'center', inline:'center'});", element)
      

    • 滚动到元素 element对象的底端 当前窗口的底部对齐:

      element = driver.find_element_by_id('kw')
      driver.execute_script("arguments[0].scrollIntoView(false);", element)
      

    • 滚动到页面顶部

      driver.execute_script("window.scrollTo(0,0)") 
      

    • 滚动到页面底部

      driver.execute_script("window.scrollTo(0 ,document.body.scrollHeight)")
      
posted @ 2022-09-14 11:25  粥雨  阅读(2844)  评论(0)    收藏  举报