python+selenium 移动滚动条的方法

用键盘PageUP,PageDOWN按键来处理页面滚动条 这种方法很灵活用起来很方便!!!!

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
#访问百度
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
#搜索
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(3)
#通过按向下键将页面滚动条拖到底部
driver.find_element_by_xpath("//*[@id='page']/a[10]").send_keys(Keys.DOWN)
print '将滚动条拉到底端'
time.sleep(2)
driver.find_element_by_xpath("//*[@id='s_tab']/a[9]").send_keys(Keys.UP)
print '将滚动条拉到上端'
time.sleep(2)
driver.find_element_by_xpath("//*[@id='con-ar']/div[3]/a").send_keys(Keys.DOWN)
print '将滚动条拉到中间'

还可以调过JS脚本来处理滚动条,但是这一种方法我试了很多次都没有成功,也不报错,就是没反应。

#coding=utf-8  
from selenium import webdriver  
import time  
#访问百度  
driver=webdriver.Firefox()  
driver.get("http://www.baidu.com")  
#搜索  
driver.find_element_by_id("kw").send_keys("selenium")  
driver.find_element_by_id("su").click()  
time.sleep(3)  
#将页面滚动条拖到底部  
js="var q=document.documentElement.scrollTop=100000"  
driver.execute_script(js)  
time.sleep(3)  
#将滚动条移动到页面的顶部  
js="var q=document.documentElement.scrollTop=0"  
driver.execute_script(js)  
time.sleep(3)  
#将页面滚动条移动到页面任意位置,改变等于号后的数值即可  
js="var q=document.documentElement.scrollTop=50"  
driver.execute_script(js)  


''''
若要对页面中的提示警告窗口中的滚动条进行操作,要先定位到该内嵌窗口,在进行滚动条操作 
js="var q=document.getElementById('id').scrollTop=100000" 
driver.execute_script(js) 
time.sleep(3) 
'''

发现稍加修改就可以:把documentElement换位body即可,完整的代码如下:

from selenium import webdriver
import os, time
 
chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
 
# 设置最长的超时时间
driver.set_page_load_timeout(10)
 
#打开网页
driver.get('https://www.baidu.com/')
driver.maximize_window()
input_box = driver.find_element_by_xpath('//*[@id="kw"]')
input_box.send_keys('selenium')
driver.find_element_by_xpath('//*[@id="su"]').click()
time.sleep(3)
driver.save_screenshot('perpic/original.png')
 
# 将页面滚动条拖到底部
js = "var q=document.body.scrollTop=100000"
driver.execute_script(js)
time.sleep(3)
driver.save_screenshot('perpic/buttom.png')
 
# 将滚动条移动到页面的顶部
js = "var q=document.body.scrollTop=0"
driver.execute_script(js)
time.sleep(3)
driver.save_screenshot('perpic/top.png')
 
# 将滚动条移动到页面的任意位置
js = "var q=document.body.scrollTop=55555"
driver.execute_script(js)
time.sleep(3)
driver.save_screenshot('perpic/mid.png')
 
driver.quit()

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值