Selenium3+python3自动化(十九)--js处理内嵌div滚动条
前言
前面介绍过js解决浏览器滚动条的问题,生活总是多姿多彩,有的滚动条就在页面上,这时候就得使用js了
一、内嵌滚动条
1.下面这张图就是内嵌div带有滚动条的样子
2.页面源码如下:
<!DOCTYPE html> <meta charset="GBK"> <!-- for HTML5 --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <html> <head> <style type="text/css"> div.scroll { background-color:#afafaf; width:500px; height:100px; overflow:auto; } </style> </head> <body> <p>玉不琢、不成器,人不学、不知道</p> <p>这是一个内嵌的div滚动条</p> <div id="test" name="xiahua" class="scroll">这是一个内嵌div:民国年间,九大家族镇守长沙,被称为“九门提督”。这九门势力庞大,外八行的无人不知,无人不晓,几乎所有冥器,流出长沙必然经过其中一家。 1933年秋,一辆神秘鬼车缓缓驶入长沙火车站,九门之首“张大佛爷”张启山身为布防官,奉命调查始末。张启山与八爷齐铁嘴一路探访,发现长沙城外有一座疑点重重的矿山,一直被日本人窥伺。 为破解矿山之谜,张启山求助同为九门上三门的戏曲名伶二月红,无奈二月红虽出身考古世家,却心系重病的妻子丫头,早已金盆洗手。张启山为了国家大义和手足之情,北上去往新月饭店为二月红爱妻求药。在北平,张启山邂逅了新月饭店的大小姐尹新月,并为尹新月连点三盏天灯,散尽家财。尹新月帮助张启山等人顺利返回长沙,二人暗生情愫。二月红爱妻病入膏肓,服药后不见好转,最终故去。 二月红悲伤之余却意外发现家族祖辈与矿山亦有重大关联,于是振作精神,决定与张启山联手,解开矿山之谜zhegedancihenchanghenchangchangchangchangchanchanchanchangchangchangchancg</div> </body> </html>
二、纵向滚动 scrollTop
1.这个是div的属性:<div id="test" name="xiahua" class="scroll">
2.这里最简单的通过id来定位,使用的是element,返回一个对象,通过控制scrollTop的值来控制滚动条高度
3.运行下面代码,观察页面是不是先滚动到底部,过5s再回到顶部
4.通过name属性定位,使用的是elements,返回的是一个list对象,这里取第一个就可以了。
# coding:utf-8 from selenium import webdriver import time driver=webdriver.Chrome() driver.get("file:///C:/Users/Administrator/Desktop/1.html") #纵向底部 js1='document.getElementById("test").scrollTop=10000' driver.execute_script(js1) time.sleep(5) #纵向顶部 js2='document.getElementsByName("xiahua")[0].scrollTop=0' driver.execute_script(js2)
三、横向滚动 scrollLeft
1.先通过id来定位,通过控制scrollLeft来控制滚动条高度
# coding:utf-8 from selenium import webdriver import time driver=webdriver.Chrome() driver.get("file:///C:/Users/Administrator/Desktop/1.html") #横向右侧 js='document.getElementById("test").scrollLeft=10000' driver.execute_script(js) time.sleep(5) #横向左侧 js='document.getElementsByClassName("scroll")[0].scrollLeft=0' driver.execute_script(js) # #纵向底部 # js1='document.getElementById("test").scrollTop=10000' # driver.execute_script(js1) # time.sleep(5) # #纵向顶部 # js2='document.getElementsByName("xiahua")[0].scrollTop=0' # driver.execute_script(js2)
备注:js的定位语法与webdriver的八种定位语法很相似
目前我已知的js的定位语法如下:
getElementById() #单数,一个对象
getElementsByName() #复数,对象list
getElementsByClassName()
getElementsByTagName()
越努力,越幸运!!!
good good study,day day up!!!