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 相关文章推荐
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
May 06 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
Feb 10 Javascript
常用一些Javascript判断函数
Aug 14 Javascript
禁止IE用右键的JS代码
Dec 30 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
Feb 15 Javascript
jQuery制作简洁的图片轮播效果
Apr 03 Javascript
举例简介AngularJS的内部语言环境
Jun 17 Javascript
jQuery多级手风琴菜单实例讲解
Oct 22 Javascript
jquery插件bootstrapValidator数据验证详解
Nov 09 Javascript
微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义实例
Dec 08 Javascript
Vue-cli中为单独页面设置背景色的实现方法
Feb 11 Javascript
微信小程序如何实现radio单选框单击打勾和取消
Jan 21 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
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
php采集速度探究总结(原创)
2008/04/18 PHP
PHP 事件机制(2)
2011/03/23 PHP
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
Python通过format函数格式化显示值
2020/10/17 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
Linux文件操作命令都有哪些
2016/07/23 面试题
专升本个人自我评价
2013/12/22 职场文书
数控机床专业自荐信
2014/05/19 职场文书
美术社团活动总结
2014/06/27 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
大学生实习推荐信
2015/03/27 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript