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 06 Javascript
Javascript writable特性介绍
Feb 27 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
Mar 11 Javascript
Jquery判断form表单数据是否变化
Mar 30 Javascript
livereload工具实现前端可视化开发【推荐】
Dec 23 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
Apr 25 Javascript
解决ztree搜索中多级菜单展示不全问题
Jul 05 Javascript
vue2.0 keep-alive最佳实践
Jul 06 Javascript
vue实现动态列表点击各行换色的方法
Sep 13 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
Oct 08 Javascript
ES6 迭代器与可迭代对象的实现
Feb 11 Javascript
js实现抽奖的两种方法
Mar 19 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
短波问题解答
2021/02/28 无线电
BBS(php & mysql)完整版(三)
2006/10/09 PHP
PHP 多维数组排序实现代码
2009/08/05 PHP
php长字符串定义方法
2012/07/12 PHP
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
php网页病毒清除类
2014/12/08 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
javascript 多浏览器 事件大全
2010/03/23 Javascript
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
js实现网页收藏功能
2015/12/17 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
js实现添加删除表格(两种方法)
2017/04/27 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
python实现bitmap数据结构详解
2014/02/17 Python
PYTHON压平嵌套列表的简单实现
2016/06/08 Python
Python3之简单搭建自带服务器的实例讲解
2018/06/04 Python
python学生信息管理系统(初级版)
2018/10/17 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
python3实现飞机大战
2020/11/29 Python
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
复核员上岗演讲稿
2014/01/05 职场文书
临床护理求职信
2014/04/26 职场文书
公司担保书格式范文
2014/05/12 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书