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跨域获得Json时invalid label错误的解决办法
Jan 11 Javascript
Jquery绑定事件(bind和live的区别介绍)
Aug 23 Javascript
jQuery读取XML文件内容的方法
Mar 09 Javascript
微信小程序 地图(map)实例详解
Nov 16 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
Dec 03 Javascript
JavaScript中数组的各种操作的总结(必看篇)
Feb 13 Javascript
jquery实现图片上传前本地预览
Apr 28 jQuery
JS代码实现电脑配置检测功能
Mar 21 Javascript
快速解决vue-cli在ie9+中无效的问题
Sep 04 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
Jul 04 Javascript
微信小程序实现购物车功能
Nov 18 Javascript
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
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内置的Math函数效率测试
2014/12/01 PHP
php实现读取内存顺序号
2015/03/29 PHP
基于PHP制作验证码
2016/10/12 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
AngularJS入门之动画
2016/07/27 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
在python里创建一个任务(Task)实例
2020/04/25 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
Python应用实现处理excel数据过程解析
2020/06/19 Python
win10安装python3.6的常见问题
2020/07/01 Python
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
就业推荐自我鉴定
2013/10/06 职场文书
春节晚会主持词
2014/03/24 职场文书
2014年工程师工作总结
2014/11/25 职场文书
2014年度培训工作总结
2014/11/27 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书