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 相关文章推荐
JS函数验证总结(方便js客户端输入验证)
Oct 29 Javascript
JQuery调用WebServices的方法和4个实例
May 06 Javascript
基于jQuery实现滚动切换效果
Dec 02 Javascript
正则 js分转元带千分符号详解
Mar 08 Javascript
vue+vue-validator 表单验证功能的实现代码
Nov 13 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
Nov 22 Javascript
JavaScript实现全选取消效果
Dec 14 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
Jul 23 Javascript
vue 利用路由守卫判断是否登录的方法
Sep 29 Javascript
微信小程序开发之tabbar图标和颜色的实现
Oct 17 Javascript
jQuery操作选中select下拉框的值代码实例
Feb 07 jQuery
JavaScript中Object、map、weakmap的区别分析
Dec 15 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
S900/ ETON E1-XM 收音机
2021/03/02 无线电
php 删除数组元素
2009/01/16 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
Laravel实现用户注册和登录
2015/01/23 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
详解JavaScript中的Unescape()和String() 函数
2015/11/09 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
python获取糗百图片代码实例
2013/12/18 Python
python端口扫描系统实现方法
2014/11/19 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
python函数超时自动退出的实操方法
2020/12/28 Python
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
电气工程和自动化自荐信范文
2013/12/25 职场文书
公司合作协议书范本
2014/04/18 职场文书
假期安全教育广播稿
2014/10/04 职场文书
管理失职检讨书范文
2015/05/05 职场文书
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL