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 分析Nginx访问日志并保存到MySQL数据库实例
Mar 13 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
Apr 10 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 Python
python如何实现从视频中提取每秒图片
Oct 22 Python
Python切图九宫格的实现方法
Oct 10 Python
Python Process多进程实现过程
Oct 22 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
Python pysnmp使用方法及代码实例
Aug 24 Python
利用python如何实现猫捉老鼠小游戏
Dec 04 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 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
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
Yii2简单实现多语言配置的方法
2016/07/23 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
在Gnumeric下使用Python脚本操作表格的教程
2015/04/14 Python
python数据封装json格式数据
2018/03/04 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
2014党员民主评议个人总结
2014/09/10 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
交通事故协议书范文
2014/10/23 职场文书
电影建党伟业观后感
2015/06/01 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
队名及霸气口号大全
2015/12/25 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android