更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解


在群里经常会遇到有人问文本框的处理,今天有时间,便写一点这方面的经验。

一般输入框有三种:

  1. 短的input框,如下:

    <input id="zenInput2" class="zenInputDemo" type="text" style="position: static;">
    
  2. textarea框,如下:

    <textarea id="message1" name="message1"></textarea>
    
  3. div式的editor框,如下:

    代码见网页源码

  4. 也可能是更复杂的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编辑器的处理相关推荐

  1. selenium处理富文本框

    selenium处理富文本框 时,直接通过sendKey是不能输入值的,因为这个富文本框时自动通过iframe自动生成的一串html的代码, 因此跑自动化的时候只能通过js的脚本输入值(如下图) 1. ...

  2. 若依框架图片上传、富文本框编辑器功能

    文章目录 一.前言 二.效果 三.编码过程 1.前端: index.vue projectShow.js 富文本框: Editor/index.vue 图片上传:ImgUploadCropper/in ...

  3. selenium python 文本框输入信息_selenium python向富文本框中输入内容

    基于本人不会JavaScript,不能像大神一样写出很牛X的方法,只能使用者屌丝方法了,不过很容易理解. 我使用的是ueditor富文本框 1.我的富文本框是在一个iframe中,进入iframe的方 ...

  4. selenium对富文本的操作

    一.input标签 1.input标签是对短文本的操作.如百度首页的输入框<input type="text" class="s_ipt" name=&q ...

  5. 富文本框让最大四百像素_富文本框的使用

    富文本框的种类有很多,例如 CKEditor UEEditor TinyEditor KindEditor 文件夹说明 ├── asp asp示例 ├── asp.net asp.net示例 ├── ...

  6. php文本框长度限制,php截取富文本框中的固定长度的字符

    ai,哎怎么赶脚自己写东西越来越小儿科了呢,现在连这个问题都找了好半天 因为后台是的内容是富文本编辑器编辑的,前台我傻逼的直接截取了字符串,然后样式啥的都乱了,找了半天是因为富文本的问题 其实解决办法 ...

  7. ios html富文本分页,富文本框与分页

    1.富文本框javascript UEditor, CKEditor,wangEditor 市面用得比较多的富文本框html 使用是的wangEditor,要学习的话能够去看它的官网 -> ht ...

  8. vue中如何使用wangEditor 富文本框

    在做后台管理项目时常常会用到富文本编辑器,在这里推荐大家使用wangEditor,亲测好用 话不多说先上图 第一步安装 npm wangeditor --save 第二步在项目中使用 先建立一个wan ...

  9. ElementUI富文本框组件wangEditor实现

    富文本框wangEditor 需求:用户要求使用富文本框上传图片.文章. 需求分析:wangeditor实现需求,几行代码即可创建一个编辑器. 解决过程: 安装 npm i wangeditor -- ...

  10. 常用的富文本框插件FreeTextBox、CuteEditor、CKEditor、FCKEditor、TinyMCE、KindEditor ;和CKEditor实例...

    目前市面上用的比较多的富文本编辑器有: FreeTextBox 一个有很多年历史的富文本编辑器了,使用简单,而且一般的使用是免费的,但是不开源,上传图片上传附件等功能没有,扩展性差. CuteEdit ...

最新文章

  1. 求数的绝对值一定是正数_人教版七年级数学上册1.2.4绝对值同步练习
  2. Tiniux 3.0 / Memory.c / OSMemFree
  3. faster-rcnn移植过程中出现错误
  4. Citrix桌面及应用虚拟化系列之三:活动目录架构准备
  5. java math.cos_Java Math类静态double cos(double d)示例
  6. 这就是科研爱情:硕士毕业工作6年后,二人一起辞职携手攻读博士学位
  7. 【文章】工作之余,放松心情
  8. 使用dex2jar和luyten查看apk中的class代码
  9. ES6-模块导入导出
  10. 量化投资:研报文本挖掘选股策略
  11. 微信视频号下载短视频的步骤
  12. GPU视频压缩1—Flexible CTU-level parallel motion estimation by CPU and GPU pipeline for HEVC
  13. Texstudio + sumatraPDF 正反向搜索关联设置
  14. MiKTeX + Texmaker ← 推荐的 LaTeX 学习环境
  15. 德国交通标志检测识别数据集
  16. 【翻译】Sencha Touch 2入门:创建一个实用的天气应用程序之三
  17. OCR光学字符识别技术及其应用场景
  18. 贪心算法_排队不等式_绝对值不等式_推公式
  19. 强制换行和强制不换行
  20. Windows10:耳机插到前面板上没声音?

热门文章

  1. javax.persistence.EntityNotFoundException: Unable to find报错
  2. C++ 第三课:常量转义字符
  3. cpm,cpc,cps和cpa分别是什么意思
  4. 关于A卡和N卡对opengl驱动问题
  5. Android中 dip 和 px 的关系
  6. Android SeekBar 自定义 背景图片 和 滑块图片
  7. Java冒泡排序实现
  8. 读万卷书,行万里路,写万行Code
  9. 搜狗推送工具-搜狗批量提交软件
  10. 原神角色展示(HTML+CSS)