在实际项目中,会经常出现元素不在当前屏幕,需要滑动滚动条,才能显示想要的元素。
这样,如何通过定位滚动条,来定位到想要的元素呢,
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)