gpt4 book ai didi

firefox - 在 Firefox 14 中使用 Selenium Webdriver 和 CkEditor

转载 作者:行者123 更新时间:2023-12-04 20:50:00 24 4
gpt4 key购买 nike

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

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

  • 正常的 sendKeys 交互
    textArea.sendKeys();

    或者
    textArea.click();
    textArea.sendKeys();

    结果 :此代码不会在 CkEditor 中生成任何文本
  • 来自 Selenium issue 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 实例。
  • 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 中生成任何文本
  • 切换 iframe(根据上面的 Issue 3890)并使用 AdvancedUserInteractions

    代码类似于:
    driver.switchTo().frame(iframe);
    textArea.click();
    new Actions(driver).sendKeys("Hello, ckeditor!").build().perform();

    结果 : 抛出错误“c.value 未定义”
  • 使用 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条目时,排除“/”字符。此解决方案还会在大字符串上引发“错误:空”。

  • 对我没有尝试过的事情有什么想法吗?修复我尝试过的东西?还有其他建议吗?

    谢谢!

    最佳答案

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

    final WebDriver frame = driver.switchTo().frame(findElement(By.id("locator")); //any locator
    ((JavascriptExecutor) driver).executeScript("document.body.innerHTML='" + TestValueThatYouWantToType + "'");
    driver.switchTo().defaultContent();

    关于firefox - 在 Firefox 14 中使用 Selenium Webdriver 和 CkEditor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12144481/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com