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> 你这个是嵌入的iframe,selenium对这个支持好像有点问题,你用selenium.selectFrame("xxx"),先设置到那个iframe下,然后用那个frame下的相对xpath来识别元素,一般就可以识别到了,我试过,你也可以试试,不过用的RC试的,IDE没搞过。 看html,你要操作的是个div啊,不是个input啊?div是可以允许用户输入内容的么?这个html不熟,div是否具有输入功能呢?有接受用户输入功能的应该是表单域吧? 之前用过 select iframe, 结果也提示失败。
能不能在body的inner text 设置写入信息?
回复 3# 的帖子
这是一个写邮件系统,例如:在163网站写email,它那写邮件内容也是可以使用富文本格式,写入信息除了用TYPE,好像没有其它 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改的吧 我们公司在找一个selenium的Sr. Tester,有没哪个同学有兴趣阿,联系我:loveztt@hotmail.com,需要可以一手搭建狂减的 说说你们公司开的价位先 不多说@selenium.getEval("selenium.browserbot.getCurrentWindow().document.body.innerHTML=\"hello\";") 楼上的靠谱。。。 本帖最后由 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 :
commandtypeKeys
//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定位工具 。。 你先UP一下在去看看。问题应该是有同级的iframe。你之前的步骤已经跑到其它iframe里了。后面的Xpath就会从之前进入的iframe找。在该步骤前UP下 就OK了。 新手,学习学习! 这篇帖子构思新颖,题材独具匠心,段落清晰,情节诡异,跌宕起伏,主线分明,引人入胜,平淡中显示出不凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范 下面是我之前项目测试Iframe的代码用的是JavascriptExecutor, 你可以试一下看可以不。
((JavascriptExecutor) cContentFDriver).executeScript("var element= window.document.getElementsByTagName('iframe');" + "idocument = element.contentDocument;element= idocument.getElementsByTagName('BODY');element.innerHTML= 'this is a test for smoketestlist test!';");
页:
[1]