前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >selenium中对富文本的处理

selenium中对富文本的处理

作者头像
无涯WuYa
发布2018-10-25 16:20:10
2.3K0
发布2018-10-25 16:20:10
举报

在互联网的很多产品中,富文本是经常存在的,因为在富文本中,可以插入图片,插入视频以及对字体等等可以进行调整,对于web的自动化测试人员来说,对于富文本的操作是无法逃避的,对于富文本,处理思路是先获取到iframe的id,通过js来控制,可以实现在富文本中输入我们想要输入的字符。

我们已微信公众平台中,添加素材为案例说明,我们需要在如下富文本输入框输入我们需要添加的文章的内容,见微信公众平台的案例图:

我们鼠标定位到富文本中,html代码只显示为:

<html xmlns="http://www.w3.org/1999/xhtml" webdriver="true">

<head>

<body class="view" contenteditable="true" spellcheck="false" style="overflow-y:hidden; height: 440px; cursor: text;">

</body>

</html>

我们把鼠标再往上移动,会看到iframe,见html代码的截图:

在截图中,我们可以看到iframe的id为:ueditor_0,依据我们操作富文本的思路是:获取到iframe的id,通过js代码:document.getElementById(id).contentWindow.document.body.innerHTML="%s"'%(content)来操作,content就是我们要在富文本中输入的内容。我们写成一个单独的方法就是为:

def richText(content):

js='document.getElementById("ueditor_0").contentWindow.document.body.innerHTML="%s"'%(content)

那么实现对微信公众平台富文本中写入数据的测试代码为:

#coding:utf-8

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.common.action_chains import ActionChains

from selenium.common.exceptions importNoSuchElementException, UnexpectedTagNameException

from selenium.webdriver.support.ui import Select

from selenium.webdriver.common.alert import Alert

from time import sleep

defrichText(content):

js='document.getElementById("ueditor_0").contentWindow.document.body.innerHTML="%s"'%(content)

driver.execute_script(js)

#微信公众平台的测试

driver=webdriver.Firefox()

driver.maximize_window()

driver.implicitly_wait(30)

driver.get('https://mp.weixin.qq.com/')

driver.find_element_by_id('account').send_keys('weixin isaccount')

driver.find_element_by_id('pwd').send_keys('weixin isaccount password')

driver.find_element_by_id('loginBt').click()

sleep(3)

driver.find_element_by_xpath(".//*[@id='menuBar']/dl[2]/dd[3]/a").click()

nowHandle=driver.current_window_handle

driver.find_element_by_xpath(".//*[@id='js_main']/div[2]/a").click()

handles=driver.window_handles

for handle in handles:

ifnowHandle!=handle:

driver.switch_to_window(handle)

sleep(5)

richText(u"我在进行自动化的测试")

sleep(6)

driver.close()

driver.switch_to_window(nowHandle)

sleep(6)

driver.quit()

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档