生活中很多网站都是异步加载的,只有当你快要移动到那个位置,它才会开始加载,这样可以加快加载速度,让用户获得很好的体验。但是也给我们Web自动化带来了一定的困难,直接使用元素来定位后面的元素,因为还没有加载,所以会报错。怎么解决呢,就是移动滑动条,让它快速到达网页底部。
下面是我弄得一个在淘宝网页滑动下拉框的代码。
from selenium import webdriver
from time import sleep
wd = webdriver.Chrome()
wd.get('https://www.taobao.com/')
sd = 0
for i in range(1,50):
sd += 100
js = "var q=document.documentElement.scrollTop=%s"%(sd)
wd.execute_script(js)
sleep(0.5)
大家可以看到滑动条是慢慢的往下移动,如果大家觉得这个速度太慢了,我们可以暴力点。
from selenium import webdriver
from time import sleep
wd = webdriver.Chrome(r'E:\webdrivers\chromedriver.exe')
wd.get('https://www.taobao.com/')
js = "var q=document.documentElement.scrollTop=20000"
wd.execute_script(js)
回到顶部:
js = "var q=document.documentElement.scrollTop=0" wd.execute_script(js)
下面的代码也能做到
js="var q=document.getElementById('id').scrollTop=0"
driver.execute_script(js)