selenium之 富文本框和editor编辑器的处理
更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解
在群里经常会遇到有人问文本框的处理,今天有时间,便写一点这方面的经验。
一般输入框有三种:
短的input框,如下:
<input id="zenInput2" class="zenInputDemo" type="text" style="position: static;">
textarea框,如下:
<textarea id="message1" name="message1"></textarea>
div式的editor框,如下:
代码见网页源码
也可能是更复杂的iframe的editor,如下:
代码见网页源码
下面依次看看这几种输入框该怎么解决:
1. input
其实这个只是列在这里,input该如何处理,我想懂点selenium的都知道怎么办。
2.textarea
很简单,定位到元素,直接send_keys就行。
示例网址:http://www.sucaijiayuan.com/api/demo.php?url=/demo/20150325-1
代码:
# -*- coding: utf-8 -*-from selenium import webdriver
from time import sleepdriver = webdriver.Firefox()
driver.get('http://www.sucaijiayuan.com/api/demo.php?url=/demo/20150325-1')
driver.maximize_window()driver.switch_to.frame('iframe')driver.find_element_by_id('message1').send_keys('Hello world!') # 很简单,直接send_keys就行
sleep(2)print driver.find_element_by_id('message1').get_attribute('value')driver.quit()
结果:
Hello world!
3.div式的editor
这种一样,定位到元素div,直接send_keys就行,不过这个send_keys不是到了‘value’属性中,而是在text中。
示例网址:http://www.sucaijiayuan.com/api/demo.php?url=/demo/基于bootstrap的轻量级jQuery文本编辑器插件%20LineControl/index.html
# -*- coding: utf-8 -*-from selenium import webdriver
from time import sleepdriver = webdriver.Firefox()
driver.get('http://www.sucaijiayuan.com/api/demo.php?url=/demo/%E5%9F%BA%E4%BA%8Ebootstrap%E7%9A%84%E8%BD%BB%E9%87%8F%E7%BA%A7jQuery%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8%E6%8F%92%E4%BB%B6%20LineControl/index.html')
driver.maximize_window()driver.switch_to.frame('iframe')driver.find_element_by_class_name('Editor-editor').send_keys('Hello world again!') # 没什么区别,也是直接send_keys
sleep(2)print driver.find_element_by_class_name('Editor-editor').textdriver.quit()
结果:
Hello world again!
4.iframe中的editor
这种是最复杂的一种,但要搞明白了,其实也很简单。
示例网址:http://ueditor.baidu.com/website/examples/completeDemo.html
代码:
# -*- coding: utf-8 -*-from selenium import webdriverdriver = webdriver.Chrome(executable_path='D:\py\AutoTestFramework\drivers\chromedriver.exe')
driver.get('http://ueditor.baidu.com/website/examples/completeDemo.html')driver.switch_to.frame('ueditor_0') # 注意,这种editor一定有frame,一定要切framebody_string = """Hello world again again!
Hello world again again!
Hello world again again!Hello world again again!"""driver.find_element_by_tag_name('body').send_keys(body_string) # 直接往frame里的body里填内容,是不是很简单粗暴
print driver.find_element_by_tag_name('body').text
driver.quit()
结果:
Hello world again again!
其实frame editor的内容一般都是写在里面的body里,最重要的就是切到frame中去,关于frame的定位于switch,见我的博客:
selenium之 定位以及切换frame(iframe)
frame中一般是一个空的html,其中显示的内容即是body中的内容。
关于输入框、富文本框、editor编辑器的处理,大概就这些。如果有什么问题或者特殊的情况,可以在博客评论中给我留言。
selenium之 富文本框和editor编辑器的处理相关推荐
- selenium处理富文本框
selenium处理富文本框 时,直接通过sendKey是不能输入值的,因为这个富文本框时自动通过iframe自动生成的一串html的代码, 因此跑自动化的时候只能通过js的脚本输入值(如下图) 1. ...
- 若依框架图片上传、富文本框编辑器功能
文章目录 一.前言 二.效果 三.编码过程 1.前端: index.vue projectShow.js 富文本框: Editor/index.vue 图片上传:ImgUploadCropper/in ...
- selenium python 文本框输入信息_selenium python向富文本框中输入内容
基于本人不会JavaScript,不能像大神一样写出很牛X的方法,只能使用者屌丝方法了,不过很容易理解. 我使用的是ueditor富文本框 1.我的富文本框是在一个iframe中,进入iframe的方 ...
- selenium对富文本的操作
一.input标签 1.input标签是对短文本的操作.如百度首页的输入框<input type="text" class="s_ipt" name=&q ...
- 富文本框让最大四百像素_富文本框的使用
富文本框的种类有很多,例如 CKEditor UEEditor TinyEditor KindEditor 文件夹说明 ├── asp asp示例 ├── asp.net asp.net示例 ├── ...
- php文本框长度限制,php截取富文本框中的固定长度的字符
ai,哎怎么赶脚自己写东西越来越小儿科了呢,现在连这个问题都找了好半天 因为后台是的内容是富文本编辑器编辑的,前台我傻逼的直接截取了字符串,然后样式啥的都乱了,找了半天是因为富文本的问题 其实解决办法 ...
- ios html富文本分页,富文本框与分页
1.富文本框javascript UEditor, CKEditor,wangEditor 市面用得比较多的富文本框html 使用是的wangEditor,要学习的话能够去看它的官网 -> ht ...
- vue中如何使用wangEditor 富文本框
在做后台管理项目时常常会用到富文本编辑器,在这里推荐大家使用wangEditor,亲测好用 话不多说先上图 第一步安装 npm wangeditor --save 第二步在项目中使用 先建立一个wan ...
- ElementUI富文本框组件wangEditor实现
富文本框wangEditor 需求:用户要求使用富文本框上传图片.文章. 需求分析:wangeditor实现需求,几行代码即可创建一个编辑器. 解决过程: 安装 npm i wangeditor -- ...
- 常用的富文本框插件FreeTextBox、CuteEditor、CKEditor、FCKEditor、TinyMCE、KindEditor ;和CKEditor实例...
目前市面上用的比较多的富文本编辑器有: FreeTextBox 一个有很多年历史的富文本编辑器了,使用简单,而且一般的使用是免费的,但是不开源,上传图片上传附件等功能没有,扩展性差. CuteEdit ...
最新文章
- 求数的绝对值一定是正数_人教版七年级数学上册1.2.4绝对值同步练习
- Tiniux 3.0 / Memory.c / OSMemFree
- faster-rcnn移植过程中出现错误
- Citrix桌面及应用虚拟化系列之三:活动目录架构准备
- java math.cos_Java Math类静态double cos(double d)示例
- 这就是科研爱情:硕士毕业工作6年后,二人一起辞职携手攻读博士学位
- 【文章】工作之余,放松心情
- 使用dex2jar和luyten查看apk中的class代码
- ES6-模块导入导出
- 量化投资:研报文本挖掘选股策略
- 微信视频号下载短视频的步骤
- GPU视频压缩1—Flexible CTU-level parallel motion estimation by CPU and GPU pipeline for HEVC
- Texstudio + sumatraPDF 正反向搜索关联设置
- MiKTeX + Texmaker ← 推荐的 LaTeX 学习环境
- 德国交通标志检测识别数据集
- 【翻译】Sencha Touch 2入门:创建一个实用的天气应用程序之三
- OCR光学字符识别技术及其应用场景
- 贪心算法_排队不等式_绝对值不等式_推公式
- 强制换行和强制不换行
- Windows10:耳机插到前面板上没声音?