我目前正在尝试自动化测试用例,我需要输入所需文本区域字段的值。
文本区域使用TinyMCE 3.4.9
我在网上找到了一个建议的博客 selectFrame(包含tinymce的iFrame) 焦点(tinymce) 类型(tinymce,text)
由于Selenium RC无法找到iframe,因此无效。但是,我尝试使用Firefox插件,至少我可以选择iframe并关注编辑器,但我无法输入任何文本。使用RC,我所做的一切似乎都无法运作
我也尝试使用html编辑器输入文字。因此selenium可以模拟单击按钮打开html编辑器,然后RC将无法找到文本区域或者我将得到一个错误,使得该元素不再附加到DOM(沿着该行的某些内容)
很抱歉,如果这听起来很混乱。
答案 0 :(得分:11)
这对我有用:
命令:runScript target:tinyMCE.activeEditor.setContent('替换为你的文字')
答案 1 :(得分:3)
如果您在一个页面上有多个tinyMCE表单,我建议您使用
命令:runScript
目标:tinyMCE.get(' textarea_id')。setContent(' Your Text')
答案 2 :(得分:2)
首先切换到第
页// driver is type of IWebDriver
driver.switchTo().frame(frameName or frameIndex);
然后你按ID获取元素并用文本填充
var el = driver.findElement(By.id("tinymce"));
el.sendKeys("YOUR TEXT");
答案 3 :(得分:0)
我能够让Selenium测试与TinyMCE一起使用的唯一方法是不使用TinyMCE进行测试。
使用某些服务器端向导在测试条件下有选择地禁用TinyMCE插件。
这对测试TinyMCE本身的使用没有帮助,但您至少可以填写表格以完成并向前移动测试...... :)
答案 4 :(得分:0)
对于TinyMCE 3.4.x和Firefox中的Selenium IDE,这对我有用。将TinyMCE实例的id替换为NAME
以下:
<tr>
<td>type</td>
<td>dom=document.getElementById('NAME_ifr').contentDocument.body</td>
<td>Editor content</td>
</tr>
答案 5 :(得分:0)
我们使用techiebyday.blogspot.com中描述的过程,它在当前版本的Selenium RC(至少高达2.20)和TinyMCE(3.4之后)中运行良好。在C#中,它看起来像这样:
string editorFrameId = editorId + "_ifr";
selenium.Focus(String.Format("dom=document.getElementById('{0}').contentWindow.document.body", editorFrameId));
selenium.GetEval(String.Format("selenium.browserbot.getCurrentWindow().document.getElementById('{0}').contentWindow.document.body.innerHTML = '{1}';", editorFrameId, fillString));
答案 6 :(得分:0)
我一直在尝试使用这个解决方案:
<tr>
<td>type</td>
<td>dom=document.getElementById('NAME_ifr').contentDocument.body</td>
<td>Editor content</td>
</tr>
替换'name_ifr'。首先进入框架名称并在进入tinymce框架之前插入,然后用'tinymce'替换名称并在进入框架后插入,其中必须遵守所有规则。但我得到的只是错误。不知何故,我从来没有让DOM或js命令在我的脚本中工作。有什么我想念的吗?
答案 7 :(得分:0)
如果页面中有一个TinyMCE元素:
var obj = ((IJavaScriptExecutor)webDriver).ExecuteScript("tinyMCE.activeEditor.setContent('" + text + "');");
答案 8 :(得分:0)
我在tinyMCE编辑器中输入文本时遇到了问题:
我的表格中有多个tinyMCE编辑器。
解决方案(使用Selenium IDE,可轻松移植到Selenium RC):
答案 9 :(得分:0)
在Selenium webdriver PHPUnit_Extensions_Selenium2TestCase中,这可以在您使用时运行:
$this-> execute(array('script' => "tinymce.get('cms_cpg_content').setContent('Lorem ipsum dolor sit amet,...')", 'args' => array()));
如果要添加文字。
答案 10 :(得分:0)
WebElement bodyIframe = driver.findElement(By.tagName(“iframe”)); 。driver.switchTo()帧(bodyIframe); WebElement mce = driver.findElement(By.id( “TinyMCE的”)); mce.sendKeys(“这是测试!!!!”);
这对我来说很完美
答案 11 :(得分:-1)
http://odino.org/typing-into-tinymce-with-selenium/ ...看起来TinyMCE和selenium IDE挂钩在3.4.5上不起作用,所以我的推测是这个问题已经延续到3.4.9。