Selenium执行Javascript脚本参数及返回值过程详解


Posted in Javascript onApril 01, 2020

在Selenium中可以使用drvier.execute_script()来执行Javascript脚本,支持多行语句。

使用Javascript可以实现以下功能:

  • 移除元素隐藏、禁用、只读等限制属性
  • 为元素添加id或高亮样式
  • 页面滚动
  • 富文本框输入(HTML注入)
  • 获取页面信息

使用Javascript参数

在使用Javascript语句时,还可以动态传入参数或元素对象,Javascript语句中使用占位符“argument[n]”来表示取第几个参数,如:

js = "arguments[0].setAttribute('style', arguments[1]);"

这里埋设了两个参数,一个是元素对象,另一个是样式字符串。

element = driver.find_element_by_id("kw")
style = "background: red; border: 2px solid yellow;"

执行脚本时,按顺序携带参数即可:

driver.execute_script(js, element, style)

获取Javascript返回值

在Javascript语句中加上return字样,如获取页面高度:

js = 'return document.documentElement.scrollHeight;'

执行该后便可以拿到其返回值:

page_height = driver.execute_script(js)

完整示例

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

js = 'arguments[0].setAttribute("style", arguments[1]);'
element = driver.find_element('id', 'kw')
style = 'background: red; border: 2px solid yellow;'
driver.execute_script(js, element, style)

page_height = driver.execute_script('return document.documentElement.scrollHeight;')
print(page_height)

time.sleep(3)

运行结果如图:

Selenium执行Javascript脚本参数及返回值过程详解

打印结果:

890

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 事件队列调整方法
Sep 18 Javascript
javascript各浏览器中option元素的表现差异
Apr 07 Javascript
ExtJS实现文件下载的方法实例
Nov 09 Javascript
页面按钮禁用与解除禁用的方法
Feb 19 Javascript
JavaScript组合拼接字符串的效率对比测试
Nov 06 Javascript
基于Javascript实现返回顶部按钮
Feb 29 Javascript
JS+CSS实现闪烁字体效果代码
Apr 05 Javascript
深入浅析JavaScript函数前面的加号和叹号
Jul 09 Javascript
详解在vue-cli项目中安装node-sass
Jun 21 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
Oct 17 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
JavaScript中工厂函数与构造函数示例详解
May 06 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
Apr 01 #Javascript
js实现数据导出为EXCEL(支持大量数据导出)
Mar 31 #Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
Mar 31 #Javascript
Vue-router 报错NavigationDuplicated的解决方法
Mar 31 #Javascript
js实现整体缩放页面适配移动端
Mar 31 #Javascript
react国际化化插件react-i18n-auto使用详解
Mar 31 #Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
Mar 31 #Javascript
You might like
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
编辑浪子版表单验证类
2007/05/12 Javascript
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
2016/06/02 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
js实现星星打分效果
2020/07/05 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
[00:14]护身甲盾
2019/03/06 DOTA
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
python操作redis数据库的三种方法
2020/09/10 Python
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
美国修容界大佬创建的个人美妆品牌:Kevyn Aucoin Beauty
2018/12/12 全球购物
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
美术国培研修感言
2014/02/12 职场文书
消防安全员岗位职责
2014/03/10 职场文书
《桥》教学反思
2014/04/09 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
2015年复活节活动总结
2015/02/27 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
Python Matplotlib绘制条形图的全过程
2021/10/24 Python