5

我在 Firefox 14 中使用 Java 中的 Webdriver。

我的问题是我似乎无法让 webdriver 与 CkEditor 很好地配合使用。我一直在寻找解决方案,但在 Firefox 13 或 14 中都无法使用。这些是我尝试过的解决方案:

  1. 正常的 sendKeys 交互

    textArea.sendKeys();
    

    或者

    textArea.click();
    textArea.sendKeys();
    

    结果:此代码不会在 CkEditor 中生成任何文本

  2. Selenium 问题 3890中的代码

    d.get("http://ckeditor.com/demo");
    WebElement iframe = d.findElement(By.tagName("iframe"));
    d.switchTo().frame(iframe);
    WebElement tinymce = d.findElement(By.tagName("body"));
    tinymce.clear();
    tinymce.sendKeys("Hello, ckeditor!");
    

    结果:此代码将转到站点并清除编辑器,但不会将任何文本放入 CkEditor 实例中。

  3. AdvancedUserInteractions - 例如。多种变体中的 Actions()

    textArea.click();
    new Actions(driver).sendKeys("Hello, ckeditor!").build().perform();
    

    new Actions(driver).sendKeys(textArea, "Hello, ckeditor!").build().perform();
    

    new Actions(driver).click(textArea).sendKeys("Hello, ckeditor!").build().perform();
    

    结果:这些不会在 CkEditor 中产生任何文本

  4. 切换 iframe(根据上述问题 3890)并使用 AdvancedUserInteractions

    代码类似于:

    driver.switchTo().frame(iframe);
    textArea.click();
    new Actions(driver).sendKeys("Hello, ckeditor!").build().perform();
    

    结果:抛出错误“ c.value is undefined

  5. 使用 Javascript 和 CkEditor Api

    JavascriptExecutor js = (JavascriptExecutor) d;
    System.out.println("[debug] Set Text: " + setText);
    js.executeScript("CKEDITOR.instances.editor1.setData('<p> "+ setText +"</p>');");
    

    结果:当“ org.apache.commons.lang.StringEscapeUtils.escapeHtml ”用于/不用于将“ setText ”转换为 Html 条目时,排除“/”字符。此解决方案还会在大字符串上引发“ ERROR: null ”。

关于我没有尝试过的事情的任何想法?修复我尝试过的东西?还有其他建议吗?

谢谢!

4

3 回答 3

3

有时,文本区域作为 iframe 处理,您必须切换到该框架并运行 JS 命令在其上键入。

final WebDriver frame = driver.switchTo().frame(findElement(By.id("locator")); //any locator
    ((JavascriptExecutor) driver).executeScript("document.body.innerHTML='" + TestValueThatYouWantToType + "'");
    driver.switchTo().defaultContent();
于 2012-08-27T15:45:43.210 回答
0

只需在之后添加等待语句tinymce.clear();,它就会正常工作。

于 2012-10-01T06:00:06.767 回答
0

遇到这个问题的可以参考这个网址:

http://bharath-marrivada.blogspot.com/2012/03/fckeditor-switch-activeelement.html

我通过引用这个解决了我的问题;D

于 2013-07-05T03:19:17.700 回答