selenium 学习笔记- selnium.RunScript(string script) 方法的使用 及有关自动化测试文本编辑器未解决的问题
selenium 学习笔记- selnium.RunScript(string script) 方法的使用 及有关自动化测试文本编辑器未解决的问题
在借助 Selenium实现自动化测试时,遇到其无法录制及回放网页上的文本编辑器的情况。
操作中,selenium可以捕获到文本编辑器的菜单栏(按钮,格式等),编辑器正文(Body)的内容无法正常操作。
为了解决这个问题,尝试过RPF工具,同样RPF也是能录制到菜单栏的操作,不能操控编辑器正文。不同的是,当编辑器正文里有内容时(比如包含了文字)RPF可以获取到正文部分的QueryID。这并不能满足实际测试需求。
在网上看到关于通过selenium的RunScript方法的例子(下面引用的例子我没有测试是否正确,有评论说可以实现,
如果是和其类似的编辑器应该是对的。不管怎样作为一个思路在实现需求的时候值得一试。)
Quote:
“由于selenium 没有直接的命令,而且所见即所得的输入框也五花八门。下面只是一个例子
selenium.runScript("var element= window.document.getElementById('iframe');idocument = element.contentDocument;element= idocument.getElementsByTagName('BODY')[0];element.innerHTML? = 'this is a test thread';");"
但是,并不是所有的WYSIWYG编辑器都能使用这种方法实现,我用RPF试着获取过几种网页上面的文本编辑器,都没能获取除菜单栏外
正文部分的QueryID。
比如我需要测试的网站里用到的文本编辑器,HTML source 如下:
1 <fieldset>2 <label>Body</label>3 <textarea cols="80" data-mediapicker-title="Insert/Update Media" data-mediapicker-uploadpath="Page" id="Body_Text" name="Body.Text" rows="25">4 </textarea>?
对于普通文本框使用 selenium.RunScript("var sum=document.getElementById('Routable_Slug'); sum.value='Hello';")
便可以实现 selenium.Type("Routable_Slug","Hello") 的输入效果。
但是对于某些文本编辑器的文本区域,runScript方法很难实现,如果您看到这篇日志,有好的建议请不吝赐教,谢谢!~^_^~