当前位置: 首页 > 面试题库 >

如何使用Selenium / WebDriver将文本输入TinceMCE编辑器

廖臻
2023-03-14
问题内容

我正在尝试使用Selenium /
Webdriver
自动将一些文本插入使用tinymce创建的文本框中

该文本框不是普通的香草文本框,因此以下操作无效:

    System.out.println("Finding text input element");
        WebElement element =  inputWebDriver.findElement(By.xpath("//html/body/div/form/div/div/div[2]"));  //not working
        //WebElement element = inputWebDriver.findElement(By.tagName("form"));  // not working
        //WebElement element = inputWebDriver.findElement(By.id("tinymce"));  // not working

        System.out.println("Entering something in text input");
        element.sendKeys("Test text");

像使用纯文本框https://code.google.com/p/selenium/wiki/GettingStarted一样可以正常工作

以下是屏幕截图,显示了如何在浏览器的“元素”选项卡中查看textarea元素的位置:http
:
//imageshack.com/a/img812/9341/1zau.png

注意: 通过selenium,我无法在“嵌入式​​” html文档中获取任何元素(我发现元素未找到错误)

我已经找到了等效的python来完成上述操作,但是,仍然希望在我的Java代码中完成该操作:

browser.execute_script("tinyMCE.activeEditor.setContent('{}')".format(testTextVar))

问题答案:

有多种实现方法。这是您可能想要看看的文章。

使用Selenium WebDriver测试所见即所得的编辑器

以下代码段未经测试,仅提供Java逻辑

  • 直接发送密钥。与上述理查德的答案相同。
    inputWebDriver.switchTo().frame("input-data_ifr");
    WebElement element = inputWebDriver.findElement(By.cssSelector("body"));
    element.sendKeys("Send keys");
  • 设置innerHTML
    inputWebDriver.switchTo().frame("input-data_ifr");
    WebElement element = inputWebDriver.findElement(By.cssSelector("body"));
    (JavascriptExecutor)driver.executeScript("arguments[0].innerHTML = '<h1>Set text using innerHTML</h1>'", element);
  • 使用TinyMCE的本地API
    // no need to switch iframe
    (JavascriptExecutor)driver.executeScript("tinyMCE.activeEditor.setContent('<h1>Native API text</h1> TinyMCE')");


 类似资料:
  • 我有一个HTML元素. 加载页面后,我可以使用从该元素获取文本。 但随后我点击这个元素并更改里面的文本(例如,改为“已编辑”)。DOM中没有任何变化,包括属性 的值(即仍然返回“initial”,并且DOM中的元素看起来像) 如何提取现在在浏览器中可见的值(即字符串“已编辑”)?我需要执行一些JavaScript或其他东西吗?

  • driver.findElement(by.xpath(“//TextArea[@id='sourceis']”)).SendKeys(“abcd”);driver.findElement(by.xpath(“//textarea[@id='source-is']”)).sendkeys(keys.tab“abcd”); 使用JavaScriptExecutor设置value属性--失败 Java

  • 最近,我有了一个无头网络驱动程序,并一直在修补一些。目前,我无法通过xpath定位元素并更改其文本。下面,我试图将“entertexthere”返回控制台,然后将文本更改为类似“helloworld”的内容,然后显示新更改的元素文本。 超文本标记语言: 选择xpath后,我得到以下结果: 这一切都很好,但我对如何修改文本感到困惑。尝试在变量中存储“此处输入文本”我尝试了: 蟒蛇: 任何帮助或见解将

  • 我正在开发一个Android聊天应用程序。一切运作良好,但除了一件事;我想设置一个布局的可见性消失,然后设置一个不同的布局可见时,用户开始输入编辑文本,就像在WhatsApp上实现的。但是我似乎想不明白。任何帮助都将不胜感激 基本上,我想做的是设置一个布局的可见性,该布局包含一个图像按钮,用于将图像上载到gone,然后显示一个布局,该布局包含一个图像按钮,用于在用户开始键入时将edittext中的

  • 问题内容: 当我在文本字段中输入文本时,它将被删除。 这是代码: 问题答案: 同意Subir Kumar Sao和Faiz。

  • 当我在文本字段中输入文本时,它会被删除。 代码如下: