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加载的网页,页面元素可能不是同时加载出来的,这个时候,就需要我们通过设置一个等待条件,等待页面元素加载完成,避免出现 ...
随机推荐
- break 和continue在循环中起到的作用
break语句的作用是终止当前循环,跳出循环体.主意,break只能跳出一层循环. continue语句的作用是终止本轮循环并开始下一轮循环,(这里要主意的是在开始下一轮循环之前,会先测试循环条件). ...
- SNORT入侵检测系统
SNORT入侵检测系统 YxWa · 2015/10/09 10:38 0x00 一条简单的规则 alert tcp 202.110.8.1 any -> 122.111.90.8 80 (ms ...
- Linux服务器上监控网络带宽的18个常用命令 zz
Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...
- Yii2.0 解决“the requested URL was not found on this server”问题
在你下了 Yii 框架,配置完路由 urlManager 后,路由访问页面会报错“the requested URL was not found on this server”,url类似于这种“ht ...
- yii2.0 邮件发送如何配置
邮件发送配置: 打开配置文件将下面代码添加到 components => [...]中(例:高级版默认配置在/common/config/main-local.php) 'mai ...
- 201621123002《java程序设计》第十三周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被多个用户通过网 ...
- si_da
1. apt-get 从互联网的软件仓库中搜索.安装.升级.卸载软件或操作系统 一般需要root权限执行,所以一般跟着sudo命令 sudo ifstat apt-get install -y ifs ...
- Git push 提交代码到远程global user.name错误解决办法
问题:安装了Git-1.9.4-preview和TortoiseGit等工具后,Git服务器开通了账号和密码并配置了邮箱.克隆了服务器代码到本地,按需求进行代码开发.提交本地代码到服务器时出现错误.具 ...
- OO第二单元单元总结
总述 OO的第二单元主题是电梯调度,与第一单元注重对数据的输入输出的处理.性能的优化不同,第二单元的重心更多的是在线程安全与线程通信上.这此次单元实验之前,我并未对线程有过了解,更谈不上“使用经验”, ...
- 《修炼之道:.NET开发要点精讲》读书笔记(三)
后几章的习题 1.异步调用开始后,什么时候才能使用异步执行的结果? A:最好在EndInvoke()方法返回之后才能使用异步执行的结果,其它时候不能保证异步调用已完成. 2.委托的异步调用开始后(即调 ...