博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
selenium 关于富文本的处理
阅读量:5075 次
发布时间:2019-06-12

本文共 2306 字,大约阅读时间需要 7 分钟。

由于项目需要,涉及到富文本的处理。百度了下,发现已经有人总结的很全了。

大概思路如下:

1.switch_to_frame

2.find_element_by_tag_name('body').send_keys("123") 

链接:http://blog.csdn.net/huilan_same/article/details/52386274

  一般输入框有三种:

  1. 短的input框,如下:

    input

  2. textarea框,如下:

    textarea

  3. div式的editor框,如下: 

    editor1

    代码见

  4. 也可能是更复杂的iframe的editor,如下: 

    editor2

    代码见

下面依次看看这几种输入框该怎么解决:

1. input

其实这个只是列在这里,input该如何处理,我想懂点selenium的都知道怎么办。

2.textarea

很简单,定位到元素,直接send_keys就行。

示例网址:

代码:

# -*- coding: utf-8 -*-from selenium import webdriverfrom time import sleep driver = 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中。

示例网址:

# -*- 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_keys sleep(2) print driver.find_element_by_class_name('Editor-editor').text driver.quit()

 

结果:

Hello world again!

4.iframe中的editor

这种是最复杂的一种,但要搞明白了,其实也很简单。

示例网址:

代码:

# -*- 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,一定要切frame body_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,见我的博客: 

frame中一般是一个空的html,其中显示的内容即是body中的内容。

转载于:https://www.cnblogs.com/wangyinghao/p/7576336.html

你可能感兴趣的文章
AngularJS之初级Route【一】(六)
查看>>
EntityFramework Core是否可以映射私有属性呢?了解一下。
查看>>
简单数据访问类,生成简单SQL,自动转换成java对象
查看>>
Oracle的null说明
查看>>
ACM程序设计选修课——1081: 堆(BFS)
查看>>
模仿今日头条导航栏滑动显示更多
查看>>
php的调试级别
查看>>
创业笔记8
查看>>
python 装饰器(decorator)
查看>>
【BZOJ2242】【SDoi2011】计算器 快速幂+EXGCD+BSGS
查看>>
C - Courses
查看>>
回顾下TCP/IP协议
查看>>
强大的Winform Chart图表控件使用说明
查看>>
VS2010调试多进程--医疗His调试中使用
查看>>
Python云图——WordCloud了解一下
查看>>
装饰模式
查看>>
HDU 1248 寒冰王座 完全背包 水题
查看>>
R的优势
查看>>
使用repeater开发出现 回发或回调参数无效 的问题
查看>>
2018蓝桥杯决赛引出来的琐事
查看>>