微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

selenium鼠标滚动操作

我们在进行UI自动化测试时,免不了要滑动鼠标,因为有些元素并不在首屏,需要滑动鼠标才可见。

selenium进行自动化过程中,可通过execute_script执行js语句实现页面滑动。常见的滑动场景分为四种:滑动至页面底部、滑动至顶部、滑动至具体位置、滑动至目标元素可见。

 

滑动到页面底部

driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")

 

滑动到页面顶部:

driver.execute_script("window.scrollTo(0, -document.body.scrollHeight)")

 

滑动到具体位置:

driver.execute_script("window.scrollTo(x,y)")   # 滚动到具体位置
driver.execute_script("window.scrollBy(x,y)")  # 滚动到具体位置

driver.execute_script("window.scrollBy(0,500)")  # 向下滑动500个像素

driver.execute_script("window.scrollBy(0,-500)")  # 向上滚动500个像素

driver.execute_script("window.scrollBy(500,0)")  # 向右滑动500个像素

driver.execute_script("window.scrollBy(-500,0)")  # 向左滚动500个像素

 或者

# 滚动条左右滚动————向右
js0 = 'var q=document.documentElement.scrollLeft=100'
driver.execute_script(js0)

# 滚动条左右滚动————向左
js1 = 'var q=document.documentElement.scrollLeft=0'
driver.execute_script(js1)

# 滚动条上下滚动————向下
js2 = 'var q=document.documentElement.scrollTop=1000'
driver.execute_script(js2)

# 滚动条上下滚动————向上
js3 = 'var q=document.documentElement.scrollTop=0'
driver.execute_script(js3)

 

 

案例一:打开博客首页,将滚动条拖动到最底部,然后再拖动到最顶部

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.csdn.net")
time.sleep(3)
# 将滚动条向下拖动到某个位置
js = 'var action=document.documentElement.scrollTop=50000000'
driver.execute_script(js)
time.sleep(3)
# 将滚动条拖动到最顶部
js0 = 'var action=document.documentElement.scrollTop=0'
driver.execute_script(js0)
time.sleep(3)
driver.quit()

案例二:模拟鼠标滚动到需要显示的元素位置,使用场景:浏览器窗口小,页面过大内容显示不全,元素可以定位但不可见

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.csdn.net")
time.sleep(3)
target = driver.find_element_by_xpath("//a[text()='关于我们']")
driver.execute_script("arguments[0].scrollIntoView();", target)  # 第一种方式
# driver.execute_script("arguments[0].focus();", target)   # 第二种方式
time.sleep(3)
driver.quit()

____________________________________________________________________________________

参考自:http://www.manongjc.com/detail/17-gtiggglmhdjppwu.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐