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之集合的关系
Sep 24 Python
python使用datetime模块计算各种时间间隔的方法
Mar 24 Python
实例讲解Python编程中@property装饰器的用法
Jun 20 Python
非递归的输出1-N的全排列实例(推荐)
Apr 11 Python
使用Python从零开始撸一个区块链
Mar 14 Python
详解Python用户登录接口的方法
Apr 17 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
python实现简单成绩录入系统
Sep 19 Python
浅谈Python中的生成器和迭代器
Jun 19 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
python Polars库的使用简介
Apr 21 Python
python开发实时可视化仪表盘的示例
May 07 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抽象工厂模式(Elgg)
2010/03/21 PHP
来自phpguru得Php Cache类源码
2010/04/15 PHP
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
javascript 异常处理使用总结
2009/06/21 Javascript
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
2017/02/17 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
python中zip()方法应用实例分析
2016/04/16 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
Python 中的with关键字使用详解
2016/09/11 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
django中cookiecutter的使用教程
2020/12/03 Python
竞选副班长演讲稿
2014/04/24 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
入党自荐书范文
2015/03/05 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
党纪处分决定书
2015/06/24 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript