一、竖向滚动条:
1、如果滚动条是针对整个HTML可以用如下方式:
js = "var q=document.documentElement.scrollTop=10000" # documentElement表示获取根节点元素
self.driver.execute_script(js)
2、如果滚动条是针对整个body可以用如下方式:
js = "var q=document.body.scrollTop=10000" # documentElement表示获取body节点元素
self.driver.execute_script(js)
3、如果滚动条是针对某个div可以用如下方式:该页面的滚动条就是针对class='main'的div而言的
js = "var q=document.getElementsByClassName('main')[0].scrollTop = 10000" # getElementsByClassName表示获取class='main'的元素列表,0表示第一个,所以使用的时候要加索引
self.driver.execute_script(js)
二、横向滚动条:
1.通过坐标控制横向和纵向滚动条 scrollTo(x, y)
js = "window.scrollTo(100,400);"
driver.execute_script(js)
三、拖动到元素可见区域:
1.可见元素与页面“底端”对齐,scrollIntoView(false)
2.可见元素与页面“顶端”对齐,scrollIntoView()
或:
xp = "//button[text()='确定']"
target = driver.find_element_by_xpath(xp)
# 滚动到目标位置
driver.execute_script("arguments[0].scrollIntoView();", target)
--scrollHeight 获取对象的滚动高度。
--scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。
--scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。
--scrollWidth 获取对象的滚动宽度。
scrollTo函数不存在兼容性问题,直接用这个函数就可以了
#滚动到底部
js = "window.scrollTo(0,document.body.scrollHeight)"
driver.execute_script(js)
#滚动到顶部
js = "window.scrollTo(0,0)"
driver.execute_script(js)
处理浏览器兼容性时:参考代码如下: # coding:utf-8 from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.baidu.com") print driver.name ## 回到顶部 #def scroll_top(): # if driver.name == "chrome": # js = "var q=document.body.scrollTop=0" # else: # js = "var q=document.documentElement.scrollTop=0" # return driver.execute_script(js) # 拉到底部 #def scroll_foot(): # if driver.name == "chrome": # js = "var q=document.body.scrollTop=10000" # else: # js = "var q=document.documentElement.scrollTop=10000" # return driver.execute_script(js)
#滚动到底部
js = "window.scrollTo(0,document.body.scrollHeight)"
driver.execute_script(js)
#滚动到顶部
js = "window.scrollTo(0,0)"
driver.execute_script(js)
# 聚焦元素
target = driver.find_element_by_xxxx()
driver.execute_script("arguments[0].scrollIntoView();", target)