python3+selenium入门15-执行JavaScript
有时有些功能需要通过js来执行,比如拖动浏览器的滚动条。通过execute_script()方法可以执行js的代码
window.scrollTo()可以传两个参数,第一个参数是下方滚动条的位置,第二个参数是右边滚动条的参数
from selenium import webdriver
import time
dr = webdriver.Firefox()
dr.get('https://www.baidu.com')
dr.set_window_size(600,600)#设置浏览器大小,让两个滚动条都显示出来
dr.find_element_by_id('kw').send_keys('selenium')
dr.find_element_by_id('su').click()
time.sleep(2)
js = "window.scrollTo(100,300)"
dr.execute_script(js)
也可以使用一些方法去代替参数 document.body.scrollHeight
from selenium import webdriver
import time
dr = webdriver.Firefox()
dr.implicitly_wait(10)
dr.get('https://www.baidu.com')
dr.find_element_by_id('kw').send_keys('selenium')
dr.find_element_by_id('su').click()
time.sleep(2)
js = "window.scrollTo(0,document.body.scrollHeight)"#滑动到底部
dr.execute_script(js)
使用scrollTo()方法可以兼容火狐和谷歌。
不知道为啥一定要先sleep之后才能成功拖动浏览器滚动条
dr.execute_script("arguments[0].scrollIntoView();", 某个元素) #拖动到可见的元素去
如果要操代码内嵌的滚动条,可以先定位滚动条,然后用鼠标事件中拖放功能去操作。
很多js功能都可以通过execute_script()方法俩执行,比如有些元素的点击会触发js事件,就需要用js的点击来执行。
js = 'document.getElementByClassName("classname")[0].click()'
driver.execute.script(js)
上面ClassName也可以换成id或name的方式。但是需要注意的是ClassName返回的是一个数组。需要加上下标选择。id和name是不需要下标的。
python3+selenium入门15-执行JavaScript的更多相关文章
- python3+selenium入门01-环境搭建
作为一个测试,在最近两年应该有明显的感觉.那就是工作变的难找,要求变的高了,自动化测试,性能测试等.没有自动化测试能力,只会点点点工作难找不说,工资也不高.所以还是要学习一些技术.首先要学习一门编程语 ...
- python3+selenium入门11-窗口切换
在打开新的浏览器窗口时,如果要定位新窗口的元素,需要先切换到这个新打开的窗口中,才能定位到该窗口下的元素. current_window_handle:获取当前句柄.可以把句柄理解成窗口的身份证 wi ...
- python3+selenium入门09-键盘事件
Keys类提供了键盘上几乎所有按键的方法.通过send_keys()方法不仅可以用来模拟键盘输入,还可以用它来模拟键盘上的按键.包括组合键,比如Ctrl+a等 需要导入Keys类 from selen ...
- python3+selenium入门08-鼠标事件
使用click()可以模拟鼠标的左键点击事件,现在的web页面中有很多其他的鼠标交互方式,比如鼠标右击.双击.悬停.鼠标拖放等功能.在WebDriver中,将这些关于鼠标操作的方法封装在ActionC ...
- python3+selenium入门07-元素等待
在使用selenium进行操作时,有时候在定位元素时会报错.这可能是因为元素还没有来得及加载导致的.可以等过元素等待,等待元素出现.有强制等待,显式等待,隐式等待. 强制等待 就是之前文章中的time ...
- python3+selenium入门02-操作火狐浏览器
使用selenium打开浏览器的时候,需要先去selenium官网下载一个对应浏览器的的driver插件.selenium下载.官网在国外可能打不开.或者可以从我网盘下载,但可能不是最新的网盘链接.将 ...
- python3+selenium入门16-窗口截图
有时候需要把一些浏览器当前窗口截图下来,比如操作抱错的时候.WebDriver类下.get_screenshot_as_file()方法可窗口截图,需要传入一个截图文件名的路径.window要用\\当 ...
- python3+selenium入门14-上传下载文件
上传文件一种方式是通过定位input标签,然后使用send_keys()方法传入需要上传文件的路径.另一种是使用第三方插件去上传文件.下面看下imput标签的方式.工具可以自己查下. <!DOC ...
- python3+selenium入门13-操作cookie
可以把cookie理解为自己账户的身份证.因为http协议是无状态的,上一个请求和下一个请求没有关系.但是有时需要有关联.比如登录之后,才能进行操作这样的设置.这个就是cookie在起作用.登录成功时 ...
随机推荐
- SQL语法基础之DELETE语句
SQL语法基础之DELETE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.查看DELETE的帮助信息 mysql> ? DELETE Na ...
- mysql 遍历所有的库并根据表和sql语句备份
建库.用户语句 create database test_hb; create user ' test_hb'@'%' identified by '123456'; grant all privil ...
- 17.解释器模式(Interpreter Pattern)
17.解释器模式(Interpreter Pattern)
- python django基础三 模版渲染
request对象 当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpRequest对象.Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 reque ...
- NIO SocketChannel 【链接】
Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(六) Selector Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer ...
- 阅读:ECMAScript 6 入门(2)
参考 ECMAScript 6 入门 ES6新特性概览 ES6 全套教程 ECMAScript6 (原著:阮一峰) JavaScript 教程 重新介绍 JavaScript(JS 教程) Modul ...
- jQuery使用(三):DOM操作之val()方法操作表单元素value值
操作表单元素属性value的值 <form action="./" method='GET'> <h3 >选择你喜欢的明星</h3> <s ...
- SQL Server2012安装流程
今天手比较抽风,把原来的SQL Server给卸载了,卸载还卸了半天,真是…… 安装时找了好多教程,结果都不是很详细,然后准备自己摸索一下,把这个过程记录下来,供大家参考,如果有不当的地方,欢迎指正, ...
- Vertica系列:从一些细节看Vertica为什么是一个优秀的数据仓库平台
===========================================对象名称可以长到128字符===========================================1 ...
- SQL的六种约束
https://blog.csdn.net/z120270662/article/details/79501621