Selenium向iframe富文本框输入内容过程图解


Posted in Python onApril 10, 2020

前言

在使用Selenium测试一些CMS后台系统时,有时会遇到一些富文本框,如下图所示:
Selenium向iframe富文本框输入内容过程图解

整个富文本编辑器是通过iframe嵌入到网页中的,手动尝试输入内容,发现内容是输入到iframe页面的body中的,

这种富文本框怎么输入呢?

我们也可以直接在body的源码上点击右键选择Edit HTML,输入相应的html代码,达到向富文本框输入的目的,如下下图:
Selenium向iframe富文本框输入内容过程图解

以下是使用Selenium的操作方法

只输入纯文本

如果只输入不带格式的纯文本,可以先切换到这个iframe,然后定位到body,send_keys相应的文本即可,代码如下:

from selenium import webdriver
dr = webdriver.Chrome()
dr.get('http://www.vemmis.com/bjq/index.html')
dr.switch_to.frame('ueditor_0')
dr.find_element('tag name', 'body').send_keys('hello')

运行完,显示如下:
Selenium向iframe富文本框输入内容过程图解

通过JS注入HTML代码

如果想输入带html格式的文本可以通过js注入,代码如下:

from selenium import webdriver
dr = webdriver.Chrome()
dr.get('http://www.vemmis.com/bjq/index.html')
js = "document.querySelector('#ueditor_0').contentDocument.querySelector('body').innerHTML='<h1>Hello</h1>'"
dr.execute_script(js)

运行完效果如下

Selenium向iframe富文本框输入内容过程图解

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

Python 相关文章推荐
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 Python
利用Python实现颜色色值转换的小工具
Oct 27 Python
python中实现k-means聚类算法详解
Nov 11 Python
Python多线程扫描端口代码示例
Feb 09 Python
numpy中的高维数组转置实例
Apr 17 Python
Django 响应数据response的返回源码详解
Aug 06 Python
关于numpy中eye和identity的区别详解
Nov 29 Python
Python的pygame安装教程详解
Feb 10 Python
Python包和模块的分发详细介绍
Jun 19 Python
详解Anaconda 的安装教程
Sep 23 Python
一篇文章带你搞懂Python类的相关知识
May 20 Python
判断Python中的Nonetype类型
May 25 Python
jupyter notebook 多环境conda kernel配置方式
Apr 10 #Python
OpenCV 表盘指针自动读数的示例代码
Apr 10 #Python
Python装饰器的应用场景代码总结
Apr 10 #Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 #Python
jupyter notebook 增加kernel教程
Apr 10 #Python
Python3操作YAML文件格式方法解析
Apr 10 #Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 #Python
You might like
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
推荐php模板技术[转]
2007/01/04 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
深入分析PHP引用(&amp;)
2014/09/04 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
python list使用示例 list中找连续的数字
2014/01/27 Python
Python中非常实用的一些功能和函数分享
2015/02/14 Python
Python实现获取操作系统版本信息方法
2015/04/08 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
python实现简单点对点(p2p)聊天
2017/09/13 Python
Python中的默认参数实例分析
2018/01/29 Python
python PyTorch预训练示例
2018/02/11 Python
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
django-rest-framework解析请求参数过程详解
2019/07/18 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
高二政治教学反思
2014/02/01 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
锦旗赠语
2015/06/23 职场文书
小学生运动会广播
2015/08/19 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书
解决python3安装pandas出错的问题
2021/05/20 Python