我目前正在Salesforce应用程序中设置自动化测试,但我遇到了使用Selenium IDE在富文本编辑器中键入字符的问题。
据我所知,富文本编辑器包含在iframe中。在HTML中,我得到了这样的代码:
<iframe id="j_id0:j_id4:j_id6:j_id115:j_id117:textAreaDelegate_Comments__c_frame"
frameborder="0" allowtransparency="true" tabindex="0" src="" title="Rich text editor,
j_id0:j_id4:j_id6:j_id115:j_id117:textAreaDelegate_Comments__c, press ALT 0 for help."
style="width:100%;height:100%">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org
/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html class="CSS1Compat" lang="en" dir="ltr" style="background-color: transparent;">
<head>
<body id="j_id0:j_id4:j_id6:j_id115:j_id117:textAreaDelegate_Comments__c_rta_body"
class="cke_show_borders" contenteditable="true" spellcheck="false" style="background-
color: transparent;">
</html>
</iframe>
我目前的步骤是:
xpath=//*[contains (@id, 'j_id0:j_id4:j_id6:j_id115:j_id117:textAreaDelegate_Comments__c_frame')]
xpath=//*[contains (@id, 'j_id0:j_id4:j_id6:j_id115:j_id117:textAreaDelegate_Comments__c_rta_body')]
xpath=//*[contains (@id, 'j_id0:j_id4:j_id6:j_id115:j_id117:textAreaDelegate_Comments__c_rta_body')]
xpath=//*[contains (@id, 'j_id0:j_id4:j_id6:j_id115:j_id117:textAreaDelegate_Comments__c_rta_body')],
值:富文本编辑器中的输入值!!! 当我运行此测试用例时,我在步骤4中遇到以下错误 - Unexpected Exception: Error: Cannot set the selection end. fileName -> chrome://selenium-ide/content/selenium-core/scripts/atoms.js, lineNumber -> 6118, columnNumber -> 6
。我不知道我做错了什么以及为什么我不能使用Selenium IDE在富文本编辑器中键入字符。
由于
答案 0 :(得分:0)
今天早上我遇到了同样的问题;不是使用iframe而是使用contenteditable&lt; span&gt;。我的解决方法是打开“WebDriver”。显然,这是一个“实验性特征”。
有一些关于它的文章http://blog.reallysimplethoughts.com/2013/02/18/webdriver-playback-in-selenium-ide-is-here/ http://blog.reallysimplethoughts.com/2011/07/08/selenium-ide-and-selenium-2-webdriver/
如果你想要的只是快速回归测试,也许这会有所帮助。但由于这个问题已经有两个月了,所以“快速”不再适用了。你有我的同情心。
您的情况听起来与
中的错误报告类似,至少表面上看似乎如此http://code.google.com/p/selenium/issues/detail?id=6981
这是一个坏消息。
为了记录,我得到了解决方法:我盯着IDE中的脚本,无法弄清楚可能出现的问题,然后我使用WebDriver将测试导出到Python脚本,希望我' d看到错误。我跑了它就行了!所以我挖了一下,发现WebDriver是IDE本身的一个选项,你就去了。我不能说实际出错了什么,但我跟着链接进入了atom.js,在那里我花了更多的时间而不是我应该欣赏代码。
答案 1 :(得分:0)
此处css=iframe[title*='textAreaDelegate_Comments'] body
- 此CSS选择器可用于编辑。
答案 2 :(得分:0)
如果您可以选择contentEditable
元素,则可以设置其内部HTML。
在Selenium IDE中,我在测试套件的顶部有一个帮助器测试,其中包含帮助程序命令,使这样的事情更方便。
命令: storeEval,目标:
Selenium.prototype.doInnerHTML=function(locator,text){var element=this.browserbot.findElement(locator);if(element===null)return null;element.innerHTML=text}
每次在Selenium IDE中创建自定义命令时,您还需要重新加载它们,因此我的帮助程序测试的最后一步是:
命令: storeEval,目标:
editor.treeView.reloadSeleniumCommands()
使用此自定义innerHTML
命令,我可以使用以下内容将内容输入contentEditable
区域:
命令: innerHTML,目标: id =消息,值:您好!