Python selenium webdriver设置js操作页面滚动条
js2 = "window.scrollTo(0,0);" #括号中为坐标
当不知道需要的滚动的坐标大小时:
weizhi2 = driver.find_element_by_id("goldLeaseApp_bClientID") #先定位到一个元素 driver.execute_script("arguments[0].scrollIntoView();", weizhi2) #让其滚动到这个坐标 arguments[0].scrollIntoView()为固定写法
参考代码:
使用 JS 滑动纵向滚动条
from selenium import webdriverfrom time import sleep # driver = webdriver.Chrome()driver = webdriver.Firefox() driver.get("http://www.baidu.com") driver.find_element_by_id('kw').send_keys("storm") driver.find_element_by_id('su').click() js1 = "window.scrollTo(0, document.body.scrollHeight)"#滑动滚动条到底部 js2 = "window.scrollTo(0,0)"#滑动到顶部 js3 = "window.scrollTo(0,200)"#向下移动200像素 js4 = "arguments[0].scrollIntoView();"#滑动滚动条到某个指定的元素 sleep(2) #等待页面加载完,注意观察滚动条目前处于最上方 driver.execute_script(js1) #执行js1,将滚动条滑到最下方 sleep(2) #加等待时间,看效果 driver.execute_script(js2) #执行js2,将滚动条滑到最上方 sleep(2) #加等待时间,看效果 driver.execute_script(js3) #执行js3,将滚动条向下滑到200像素 sleep(2) #加等待时间,看效果driver.execute_script(js2) #执行js2,将滚动条滑到最上方sleep(2) ele = driver.find_element_by_id('con-ar') #定位一个元素driver.execute_script(js4,ele) #滑动到上面定位的元素的地方 sleep(2) driver.quit() 以上语句Chrome 和 Firefox 浏览器测试都没问题 #使用 JS 滑动横向滚动条 from selenium import webdriverfrom time import sleep driver = webdriver.Chrome()# driver = webdriver.Firefox()driver.get("http://www.baidu.com") driver.find_element_by_id('kw').send_keys("storm") driver.find_element_by_id('su').click() driver.set_window_size(500,500) #缩小浏览器窗口,使之出现横向滚动条 js5 = "window.scrollTo(document.body.scrollWidth,0)" js6 = "window.scrollTo(0,0)" js7 = "window.scrollTo(200,0)" driver.execute_script(js5) #移动到最右边 sleep(2) driver.execute_script(js6) #移动到最左边 sleep(2) driver.execute_script(js7) #向右移动200像素 sleep(2) driver.quit() #操作内嵌滚动条 #内嵌滚动条,一般嵌在一个iframe 里面,先切到要操作滚动条所在的iframe里面即可 from selenium import webdriver from time import sleep driver = webdriver.Chrome() # driver = webdriver.Firefox() driver.get("http://sahitest.com/demo/iframesTest.htm") sleep(2) driver.switch_to.frame(1)#1代表id=1的frame(框架) js5 = "window.scrollTo(0,200)"driver.execute_script(js5) #向下移动200像素sleep(2) driver.quit() #多次滑动示例 from selenium import webdriver from time import sleep from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.implicitly_wait(10) driver.maximize_window() driver.get("http://www.taobao.com") title = driver.title#title为当前页面标题 if title == '淘宝网 - 淘!我喜欢': print('成功跳转') else: print('跳转失败') driver.find_element_by_css_selector("#q").send_keys("手机壳")#在搜索框中输入手机壳 driver.find_element_by_css_selector(".btn-search").click()#点击淘宝搜索 sleep(2) aaa = "window.scrollTo(0,500);" #设置右侧下拉滚动坐标为500,底部(左右滚动条)为0 bbb = "window.scrollTo(0,800);" ccc = "window.scrollTo(0,1000);" driver.execute_script(aaa)#滑动第一次 sleep(2) driver.execute_script(bbb)#再次滑动至更底部 sleep(2) driver.execute_script(ccc)#再次滑动至更底部
Python selenium webdriver设置js操作页面滚动条的更多相关文章
- java selenium webdriver处理JS操作窗口滚动条
未经作者允许,禁止转载!!! java selenium webdriver处理JS操作窗口滚动条 java selenium webdriver处理JS操作窗口滚动条 import org.open ...
- Python selenium webdriver设置加载页面超时
1. pageLoadTimeout: pageLoadTimeout方法用来设置页面完全加载的超时时间,完全加载即页面全部渲染,异步同步脚本都执行完成.没有设置超时时间默认是等待页面全部加载完成才 ...
- python3 + selenium 使用 JS操作页面滚动条
js2 = "window.scrollTo(0,0);" #括号中为坐标 当不知道需要的滚动的坐标大小时: weizhi2 = driver.find_element_by_id ...
- 【Python + Selenium】之JS定位总结
感谢:小琰子 Python+Selenium 脚本中的一些js的用法汇总: 1.滚动条 driver.set_window_size(500,500) js = "window.scroll ...
- Selenium with Python 005 - 调用js操作页面元素
WebDriver提供了execute_script()方法来执行JavaScript方法,格式如 driver.execute_script(script,*args) 执行js一般有两种场景,一是 ...
- Python+Selenium自动化-设置浏览器大小、刷新页面、前进和后退
Python+Selenium自动化-设置浏览器大小.刷新页面.前进和后退 1.设置浏览器大小 maximize_window():设置浏览器大小为全屏 set_window_size(500,5 ...
- Python Selenium Webdriver常用方法总结
Python Selenium Webdriver常用方法总结 常用方法函数 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: m ...
- python selenium webdriver入门基本操作
python selenium webdriver入门基本操作 未经作者允许,禁止转载! from selenium import webdriver import time driver=webdr ...
- Python+Selenium自动化-设置等待三种等待方法
Python+Selenium自动化-设置等待三种等待方法 如果遇到使用ajax加载的网页,页面元素可能不是同时加载出来的,这个时候,就需要我们通过设置一个等待条件,等待页面元素加载完成,避免出现 ...
随机推荐
- CRM--admin组件
admin组件使用 1.创建一个Django项目 2.在models里面创建表 class Publish(models.Model): name = models.CharField(max_len ...
- ARM汇编指令格式
一.ARM介绍 1) arm汇编中,程序下一步执行哪一条指令,是根据程序计数器(PC)的值来决定. 类比于8086的CS:IP的功能. 2) 8086属于CISC(复杂指令集),每条指令长度不等,ar ...
- Android 8.0+ 通知不显示的适配
最近在 写项目的时候 发现 通知并不会显示的问题,查看资料发现 从Android 8.0开始通知必须加上ChannelId Android O 引入了 通知渠道(Notification Chann ...
- Sublime Text 执行后只有运行时间,没有执行结果!解决方法!
问题:build完python代码,只输出:[Finished in 0.2s] 分析:操作回忆:开始是可以看到运行结果的,后来在Tools>>Build with 选择了"Sy ...
- 【每日更新】【Redis学习】
5. Redis订阅和发布模式和Redis事务 -------------------Redis事务------------------- 1.概念: redis中的事务是一组命令的集合.事务 ...
- nginx新增tcp模板
最近在装nginx时,发现新增了tcp模板,装了一遍,现记录下来过程. 1.下载nginx源码包,并解压 2.下载tcp模板压缩包https://github.com/yaoweibin/nginx_ ...
- JAVA多线程之线程间的通信方式
(转发) 收藏 记 周日,北京的天阳光明媚,9月,北京的秋格外肃穆透彻,望望窗外的湛蓝的天,心似透过栏杆,沐浴在这透亮清澈的蓝天里,那朵朵白云如同一朵棉絮,心意畅想....思绪外扬, 鱼和熊掌不可兼得 ...
- php JS 导出表格特殊处理
但是这样导出身份证号会变为科学计数: 解决方法就是: 我们了解一下excel从web页面上导出的原理.当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取 它,所以把mi ...
- 安装mq的时候,计算机用户名是中文名的解决办法
在windows下安装rabbitMq ,如果使用用户名是中文的,则会出现启动失败的情况.关于这一点下边给出终极解决方案. 1. 假如你的中文用户名是 XXXXXX,为用户目录建立软链接,软连接名称为 ...
- oo第四次博客总结
1.论述测试与正确性论证的效果差异,比较其优缺点 测试:通过大量测试样例覆盖测试代码,来检测代码功能的实现是否正确是否完善.测试一个程序的正常输入比较容易,但难点就在于大量的非法输入,测试只能发现bu ...