51Testing软件测试论坛

标题: selenium如何测试富文本 [打印本页]

作者: kellyxie    时间: 2009-8-12 15:45
标题: selenium如何测试富文本
使用 SeleniumIDE测试,
想要在富文本里面输入文本信息,指定xpath作为target,系统老是认不到。
请问,如何激发该事件。
例如:type   //iframe[@id='HtmlEditor']/html/body/                 textmessage
系统老是提示“element not found”
具体原文本信息如下:
<iframe id="HtmlEditor" class="HtmlEditor" frameborder="0" src="about:blank" marginwidth="0" marginheight="0" style="height: 100%; width: 100%; margin-left: 1px; margin-bottom: 1px;" name="HtmlEditor">
<html>
<head>
</head>
<body>
<div>
<br/>
<br/>
</div>
</body>
</html>
</iframe>
作者: park_p    时间: 2009-8-13 18:02
你这个是嵌入的iframe,selenium对这个支持好像有点问题,你用selenium.selectFrame("xxx"),先设置到那个iframe下,然后用那个frame下的相对xpath来识别元素,一般就可以识别到了,我试过,你也可以试试,不过用的RC试的,IDE没搞过。
作者: park_p    时间: 2009-8-13 18:05
看html,你要操作的是个div啊,不是个input啊?div是可以允许用户输入内容的么?这个html不熟,div是否具有输入功能呢?有接受用户输入功能的应该是表单域吧?
作者: kellyxie    时间: 2009-8-14 11:13
之前用过 select iframe, 结果也提示失败。
能不能在body的inner text 设置写入信息?
作者: kellyxie    时间: 2009-8-14 11:18
标题: 回复 3# 的帖子
这是一个写邮件系统,例如:在163网站写email,它那写邮件内容也是可以使用富文本格式,写入信息除了用TYPE,好像没有其它
作者: park_p    时间: 2009-8-17 12:07
selectFrame(dom=...)用其确保确实把frame设置到了你想操作的iframe下,然后用相对xpath是可以识别元素的,我试过,相同的xpath写的元素,在不同frame下都有时是能准确点击的,至于你说的selectFrame不行,就太清楚了,你可以多写点试验代码测测看,看看selenium代码有无更好的用法或变通方法。关于type我是这么想的,能type的地方应该是可以接受用户键盘输入的地方,一个html的div内部是应该是不能接受用户输入的吧,你说的富文本是不是这个<textarea>标签啊,如果div可以接受用户输入,你type也应该可以,不行就试下typeKeys或keyPress等selenium提供的命令,还不行就强制设置页面元素的属性,这个应该可以了,你可以用js设置属性或者看看selenium提供的设置属性的方法,我改过一次hidden input里的value值,是可以改的,可记不得我怎么改的了,很可能是用js改的吧
作者: realrainny    时间: 2009-10-20 17:03
我们公司在找一个selenium的Sr. Tester,有没哪个同学有兴趣阿,联系我:loveztt@hotmail.com,需要可以一手搭建狂减的
作者: lamuda    时间: 2010-2-26 12:47
说说你们公司开的价位先
作者: wpyily    时间: 2010-7-26 09:57
不多说
@selenium.getEval("selenium.browserbot.getCurrentWindow().document.body.innerHTML=\"hello\";")
作者: ahtest    时间: 2011-8-31 15:26
楼上的靠谱。。。
作者: feiyunkai    时间: 2011-9-20 13:37
本帖最后由 feiyunkai 于 2011-9-20 13:46 编辑

用ide版,FF的firebug插件一定装了吧?如果没装,那么我建议装一个。步骤:打开FF浏览器,点击工具下的添加组件按钮,搜索框输入:firebug点击搜索,点击添加至firefox,安装完成后,重启浏览器即可。
编辑富文本步骤:打开富文本输入页面,点击F12(打开firebug),按ctrl+shift+c(定位元素的快捷键),双击富文本输入框,鼠标定位在firebug中高亮显示部分,鼠标右下方会显示富文本输入框的xpath,我们用的是fckeditor,看到的xpath为:html/body/p,查看firebug中xpath中的html属性,我的系统中是 <html dir="ltr">
在ide中insert new command :
command  typeKeys
//html[@dir='ltr']/body/p
value      需要输入的文字
保存后运行
经验证该方法可行
xpath操作文本编辑器技巧:通过最内层html属性定位      
selenium使用技巧:ide与rc结合使用,利用ide版在FF浏览器录制脚本和添加部分断言,然后导出不同语言的脚本,修改浏览器设置(支持几乎所有的主流的浏览器,例如:IE,FF,google,safari,opera等浏览器)+细化该脚本,可以节约很多时间。我公司自动化工具:  eclipse+junit4+selenium rc ,并以selenium IDE版作为录制脚本辅助工具,firebug作为xpath定位工具
作者: Htjy2010    时间: 2012-2-7 20:23
。。 你先UP一下在去看看。问题应该是有同级的iframe。你之前的步骤已经跑到其它iframe里了。后面的Xpath就会从之前进入的iframe找。在该步骤前UP下 就OK了。
作者: wxxfcda    时间: 2012-6-7 16:17
新手,学习学习!
作者: 4279937    时间: 2012-6-18 11:13
这篇帖子构思新颖,题材独具匠心,段落清晰,情节诡异,跌宕起伏,主线分明,引人入胜,平淡中显示出不凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范
作者: xufang1122    时间: 2012-6-21 13:36
下面是我之前项目测试Iframe的代码用的是JavascriptExecutor, 你可以试一下看可以不。
  1. ((JavascriptExecutor) cContentFDriver).executeScript("var element= window.document.getElementsByTagName('iframe')[0];" +                "idocument = element.contentDocument;element= idocument.getElementsByTagName('BODY')[0];element.innerHTML  = 'this is a test for smoketestlist test!';");
复制代码





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2