在实际项目中,会经常出现元素不在当前屏幕,需要滑动滚动条,才能显示想要的元素。

这样,如何通过定位滚动条,来定位到想要的元素呢,

webdriver不能直接定位到浏览器滚动条,只能通过execute_script()来执行js脚本,达到滚动条的目的

我们今天运用 window.scrollTo()的方法来定位

语法:scrollTo(xpos,ypos)

>>> xpos :横坐标

       ypos:纵坐标

直接上代码:

# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-5-21
"""

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

#启动浏览器
#driver = webdriver.Firefox()
driver = webdriver.Chrome()

url = "http://www.baidu.com"
driver.get(url)

#搜索selenium
driver.find_element(By.ID,"kw").send_keys("selenium")
driver.find_element(By.ID,"su").click()
time.sleep(3)

#调用js代码拖动滚动条
driver.execute_script("window.scrollTo(0,1680)")

#直接拖动到最底部
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")

#直接拖到顶部
driver.execute_script("window.scrollTo(0,0)")
time.sleep(3)

#退出浏览器
driver.quit()

>>>还有一种写法:

针对 Chrome浏览器

#针对Chrome浏览器 
js = "var q=document.body.scrollTop=10000"
driver.execute_script(js)

针对Firefox浏览器

 

#针对Firefox浏览器
js = "var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)