测试必须在时间、质量和成本之间获取一个平衡点,这是测试策略和测试设计的价值体现。
2.22 JS处理富文本
上一篇 /
下一篇 2018-06-12 10:54:16
/ 个人分类:Python+Selenium2 WebDriver API
2.22 JS处理富文本
51Testing软件测试网o-G+nl7U9zsD9[0tg前言
/Z}$@0r9t9Hw1lk/I Z0 <富文本>这篇解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的问题
5d}NA?1Zl'z
NFd0一、加载配置51Testing软件测试网1ET|\EsZ
1.打开博客园写随笔,首先需要登录,这里为了避免透露个人账户信息,我直接加载配置文件,免登录了。
y"~G&BJ"R0 不懂如何加载配置文件的,看加载firefox配置
0a\-gW{:\W:Q051Testing软件测试网zKNa]W7^r&D7DM'[~)}/B0nV1L&Ama1KKEXn0二、打开编辑界面51Testing软件测试网E|9H_Jv,z*WT
1.博客首页地址:bolgurl = "http://www.cnblogs.com/"
]e@2Lt`&Vw
GX0 2.我的博客园地址:yoyobolg = bolgurl + "yoyoketang"
Amw@*_P7|0 3.点击“新随笔”按钮,id=blog_nav_newpost
c4?1sNd(a%Pj-\0E9H8i5r SR'G,Y0
Wc\q)BA1fjRD051Testing软件测试网9Y!Q'XS-z(OF三、定位iframe51Testing软件测试网)m r0m
Ld(u$P
n
{
1.打开编辑界面后先不要急着输入内容,先sleep几秒钟
*]rO1al0 2.输入标题,这里直接通过id就可以定位到,没什么难点51Testing软件测试网\WDlpFo]
3.接下来就是重点要讲的富文本的编辑,这里编辑框有个iframe,所以需要先切换
#f5Uf(b$N9z*_051Testing软件测试网V(^0gw0eH$o]6F f4`~51Testing软件测试网W4SUN9_kwPJ
*_c|
@ m_i`%d0 51Testing软件测试网 dL\`Fm@
51Testing软件测试网&N"n
j]h 四、js输入中文
*P0\NI5Xbk~0 1.这里定位编辑正文是定位上图的红色框框位置body部分,也就是id=tinymce
Y
hPq@
nT2N0#ij}!Kd.W_"g0 2.定位到之后,用js的方法直接输入,无需切换iframe
meJZ?e6t(}0i'Fh?l0 3.直接点保存按钮,无需再切回来
#|D3{Lh\DPfP$D$@r02F*O4k(c*G#a.g ^'mA0
[5UMc}"SL+kz08Z9O;Rm6lq0五、参考代码:51Testing软件测试网 ju'a^
H'V`#D%^
#coding:utf-8fromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeysimporttime#profileDir路径对应直接电脑的配置路径profileDir = r'C:\xxx\xxx\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default'profile=webdriver.FirefoxProfile(profileDir)
driver=webdriver.Firefox(profile)
bolgurl="http://www.cnblogs.com/"yoyobolg= bolgurl +"yoyoketang"driver.get(yoyobolg)
driver.find_element_by_id("blog_nav_newpost").click()
time.sleep(5)
edittile= u"Selenium2+python自动化23-富文本"editbody= u"这里是发帖的正文"driver.find_element_by_id("Editor_Edit_txbTitle").send_keys(edittile)
body="这里是通过js发的正文内容"#js处理iframe问题(js代码太长了,我分成两行了)js ='document.getElementById("Editor_Edit_EditorBody_ifr")'\
'.contentWindow.document.body.innerHTML="%s"'%body
driver.execute_script(js)#保存草稿driver.find_element_by_id("Editor_Edit_lkbDraft").click()
收藏
举报
TAG: