How to input text into tinceMCE editior using selenium/webdriver

0
0

I am trying to automatically insert some text using Selenium/Webdriver into a text box created using tinymce

The text box is not a plain vanilla textbox so following is not working:

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");

like it is working fine with plain text box https://code.google.com/p/selenium/wiki/GettingStarted

Here is screenshot how the textarea element’s location is seen in browser’s element tab:
http://imageshack.com/a/img812/9341/1zau.png

Note: Through selenium, I am not able to get any element inside the ’embedded’ html doc ( i get element not found error)

I have found a python equivalent to get done above, but, still looking to get it done in my java code:

browser.execute_script("tinyMCE.activeEditor.setContent('{}')".format(testTextVar))
  • You must to post comments
0
0

There are multiple ways of doing it. Here’s an article you might want to have a look.

Test WYSIWYG editors using Selenium WebDriver

Code snippets below are not tested, only provide the logic in Java.

  • Send keys directly. Same as Richard’s answer above.

inputWebDriver.switchTo().frame("input-data_ifr");
WebElement element = inputWebDriver.findElement(By.cssSelector("body"));
element
.sendKeys("Send keys");

  • Set 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);

  • Use TinyMCE’s native API

// no need to switch iframe
(JavascriptExecutor)driver.executeScript("tinyMCE.activeEditor.setContent('<h1>Native API text</h1> TinyMCE')");
  • You must to post comments
Showing 1 result
Your Answer
Post as a guest by filling out the fields below or if you already have an account.
Name*
E-mail*
Website