我是靠谱客的博主 玩命绿草,这篇文章主要介绍selenium之 富文本框和editor编辑器的处理,现在分享给大家,希望可以做个参考。

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


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

一般输入框有三种:

  1. 短的input框,如下:

    input

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

    textarea

    复制代码
    1
    2
    <textarea id="message1" name="message1"></textarea>
  3. div式的editor框,如下:
    editor1

    代码见网页源码

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

    代码见网页源码

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

1. input

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

2.textarea

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

示例网址:http://www.sucaijiayuan.com/api/demo.php?url=/demo/20150325-1

代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# -*- coding: utf-8 -*- from selenium import webdriver from 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()

结果:

复制代码
1
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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding: utf-8 -*- from selenium import webdriver from time import sleep driver = 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()

结果:

复制代码
1
Hello world again!

4.iframe中的editor

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

示例网址:http://ueditor.baidu.com/website/examples/completeDemo.html

代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding: utf-8 -*- from selenium import webdriver driver = webdriver.Chrome(executable_path='D:pyAutoTestFrameworkdriverschromedriver.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()

结果:

复制代码
1
Hello world again again!

其实frame editor的内容一般都是写在里面的body里,最重要的就是切到frame中去,关于frame的定位于switch,见我的博客:
selenium之 定位以及切换frame(iframe)

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

关于输入框、富文本框、editor编辑器的处理,大概就这些。如果有什么问题或者特殊的情况,可以在博客评论中给我留言。

最后

以上就是玩命绿草最近收集整理的关于selenium之 富文本框和editor编辑器的处理的全部内容,更多相关selenium之内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部