selenium 如何滚动页面使元素不被遮挡

方法一:  使某个元素与页面顶部或者底部对齐(适用于滚动弹层)

songs= driver.find_elements(By.XPATH,"//div[@class='tt']/span")
js= 'arguments[0].scrollIntoView(true);' # true顶部,false 底部
driver.execute_script(js,songs[70]) # 将元素与页面顶部对齐

方法二:
jsdown= 'window.scrollTo(0,document.body.scrollHeight)' # 页面滚动到最底部
driver.execute_script(jsdown)
jstop = 'window.scrollTo(document.body.scrollHeight,0)' # 页面滚动到最顶部
driver.execute_script(jstop)
方法三:
action = ActionChains(driver);# 创建鼠标对象:
action.drag_and_drop_by_offset(x,y,element) #x、y表示元素拖动时横向和纵向移动的距离,单位为像素。element表示的是元素对象;
action.perform() #调用鼠标执行事件:

 

方法四   (适用 滚动条内嵌在div内):

js="document.getElementById('agreementMain').scrollTop=12000" #获取内嵌div的位置 并设置滚动条移动的值
driver.execute_script(js) # 调用js方法
js="var q=document.getElementByClassName('dataTables_scrollBody').scrollTop=100000"
driver.execute_script(js)

 

关于鼠标的各种操作:

Selenium中元素、浏览器、鼠标、键盘操作及获取元素方法介绍;_石头缝里的小松鼠的博客-CSDN博客_selenium 获取按钮

posted @ 2022-05-18 16:08  Mia妈妈加油呀  阅读(223)  评论(0)    收藏  举报