我们在进行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] 举报,一经查实,本站将立刻删除。