其他分享
首页 > 其他分享> > 一个小技巧让你轻松处理Selenium处理滚动条和元素聚焦

一个小技巧让你轻松处理Selenium处理滚动条和元素聚焦

作者:互联网

01、JS处理滚动条

通过webdriver提供的execute_script()方法执行JS脚本操作滚动条

右侧滚动条

# Firefox浏览器滚动到底部
js = "var q=document.documentElement.scrollTop=10000"



# Firefox浏览器滚动到顶部

js = "var q=document.documentElement.scrollTop=0"

  
# Chrome浏览器滚动到底部

js = "var q=document.body.scrollTop=10000"



# Chrome浏览器滚动到顶部

js = "var q=document.body.scrollTop=0"



# 通过id属性切入操作内嵌表单的滚动条

js = "var q=document.getElementById('id').scrollTop=0"

横向滚动条:

#  x为横向距离 y为纵向距离

js = "window.scrollTo(x,y);"

据说不存在兼容问题的scrollTo函数

# 滚动到底部

js = "window.scrollTo(0,document.body.scrollHeight)"



# 滚动到顶部

js = "window.scrollTo(0,0)"



# 滚动到横向距离为X纵向距离为Y的位置

js = "window.scrollTo(x,y)"

执行js脚本

driver.execute_script(js)

上个代码:

# coding=utf-8
# author:Ven
     
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.set_window_size(width=800,height=700)
driver.get("https://www.baidu.com")
    driver.find_element_by_xpath("//input[@id='kw']").send_keys('selenium')
    driver.find_element_by_xpath("//input[@id='su']").click()
    sleep(1)
    js = "window.scrollTo(0,document.body.scrollHeight)"
    driver.execute_script(js)
    sleep(1)
    js = "window.scrollTo(500,0)"
    driver.execute_script(js)
    sleep(1)
    driver.quit()

02、元素聚焦

通过JS让页面直接跳到元素出现的位置(注意遮盖现象,聚焦被遮盖聚焦附近元素)

target = driver.find_element_by_xpath()
driver.execute_script("arguments[0].scrollIntoView();", target)
# coding=utf-8
# author:Ven
     
from selenium import webdriver
from time import sleep
     
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
    driver.find_element_by_xpath("//input[@id='kw']").send_keys('selenium')
    driver.find_element_by_xpath("//input[@id='su']").click()
driver.set_window_size(width=600, height=600)
sleep(2)
target = driver.find_element_by_xpath("//*[@id='page']/a[1]/span[2]")
driver.execute_script("arguments[0].scrollIntoView();", target)             # 元素聚焦到翻页按钮 - 2
sleep(2)
driver.quit()

最后也给大家分享一份软件测试资料

上面的这些内容,对于软件测试的的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

关注我的微信公众号:程序员二黑,即可免费获取!

最困难的时候,也就是我们离成功不远的时候!如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流学习。

精彩推荐:

在职阿里6年,一个29岁女软件测试工程师的心声

公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档…

腾讯二面:web测试问题被虐哭了,直到学长给了我这些知识点…

标签:处理,Selenium,driver,js,滚动条,scrollTo,window,sleep,id
来源: https://blog.csdn.net/weixin_53519100/article/details/121771483