UI⾃动化:浏览器常⽤操作及滚动条滑动
在UI⾃动化实施过程中,存在⼀些元素定位和⿏标键盘操作⽆法解决的问题,⽐如滑动浏览器滚动条,某些元素出现在可见范围内等等。
selenium中有⼏种直接操作浏览器动作,刷新页⾯操作如下:
# 刷新页⾯
常⽤的还有,
back():浏览器访问页⾯回退
forward():浏览器访问页⾯前进
close():关闭当前窗⼝
quit():关闭所有窗⼝和浏览器
这⾥close和quit的使⽤容易混淆,close相当于只作⽤于当前句柄窗⼝,quit作⽤于整个浏览器。
除此之外,还有些浏览器操作是selenium⽆法直接完成的,需要通过发送js代码间接完成,这⾥就要介绍⼀个driver新的⽅法,网站底部代码js特效
execute_script():⾥⾯的参数是字符串格式的js代码,这⾥以滑动浏览器滚动条⾄最底部为例,
因此⾸先我们要知道,使⽤纯js代码如何实现滑动浏览器滚动条,很简单:
// x,y为横,纵坐标位置,单位px
window.scrollTo(x, y)
如果将滚动条滑⾄距窗⼝顶部1000px的位置,
window.scrollTo(0, 1000)
如果想滑到窗⼝最底部呢?每⼀个⽹页页⾯的⾼度可能不同,所以可以使⽤如下⽅法,
window.scrollTo(0, document.body.scrollHeight)
结合上⾯driver的⽅法,我们可以将js代码通过python发送给浏览器驱动,
想要滑动横着的滚动条,只需要修改x的值即可。
上⾯是对整个浏览器的滚动条操作,假设现在我们只需要让页⾯中某个元素可见,⼜该如何操作呢?
此处以简书官⽹⾸页的【查看全部】链接为例,
浏览⼤致和操作浏览器滚动条⼀样,
element = driver.find_element_by_class_name('find-more')
execute_script第⼀个参数是想要发送的js代码,第⼆个参数是待操作的元素。scrollIntoView⾥的false是让【查看全部】链接在窗⼝底部可见,该参数默认为true,元素会在窗⼝顶部可见,但是有些时候会被顶部的悬浮导航栏遮挡,因此具体如何使⽤根据实际情况决定。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论