selenium之 富文本框和editor编辑器的处理
来源:互联网 发布:nginx加lua模块 编辑:程序博客网 时间:2024/06/05 15:32
更多关于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 webdriverfrom 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 webdriverfrom 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_keyssleep(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').textdriver.quit()
结果:
Hello world again again!
其实frame editor的内容一般都是写在里面的body里,最重要的就是切到frame中去,关于frame的定位于switch,见我的博客:
selenium之 定位以及切换frame(iframe)
frame中一般是一个空的html,其中显示的内容即是body中的内容。
关于输入框、富文本框、editor编辑器的处理,大概就这些。如果有什么问题或者特殊的情况,可以在博客评论中给我留言。
最后插个小广告,如果你想自学,你可以看一些博客和书籍;如果你希望在学习过程中有更多的交流,你可以加入QQ群(219873826)跟一些学习selenium的朋友交流学习,共同进步;如果你对自己的自学能力和自控能力没有信心,我也可以推荐你一些千元价位的python+selenium课程(如龙腾测试)
- selenium之 富文本框和editor编辑器的处理
- 第22节:富文本框和editor编辑器的处理
- Selenium Webdriver处理富文本框
- Python下Selenium富文本框的输出处理
- 百度富文本框编辑器 UEdit和KindEditor编辑器
- selenium+python解决有关富文本框的方法
- Android 文本框的 富文本处理
- selenium 关于富文本的处理
- Selenium 处理富文本
- django的富文本框
- 富文本框的使用
- Selenium2library关键字之富文本框和上传文件
- 百度富文本框编辑器不能上传图片
- 日历插件和富文本框
- WordPress-Editor-Android介绍:Android WebView与JavaScript实现的富文本编辑器
- Vue2 封装的 Quill 富文本编辑器组件 Vue-Quill-Editor
- selenium处理文本框写入不成功
- ueditor修改富文本框宽度和高度的方法
- 半吊子程序员
- 插入排序
- 基于bootstrap的响应式jQuery滚动新闻插件 _bootstrapNew
- hello pyhon
- 驰骋工作流引擎表单设计器-数据获取
- selenium之 富文本框和editor编辑器的处理
- ip netns命令操作docker容器的网络
- 快速上手RaphaelJS
- 设计模式:代理模式(Proxy)
- SQLite数据库的使用之使用内置函数
- POJ 1729 Jack ans Jill(bfs)
- QDU easy problem(另类枚举)
- C# 基础连接已经关闭: 服务器关闭了本应保持活动状态的连接的错误
- LeetCode OJ-387. First Unique Character in a String