无法使用Selenium WebDriver将Keys()发送到TinyMCE

我在Eclipse中使用Selenium WebDriver,并且试图将文本插入网页上的tinymce框中。这是我正在使用的代码。

//find tinymce iframe

editorFrame = driver.findElement(By.cssSelector(".col_right iframe"));

//switch to iframe

driver.switchTo().frame(editorFrame);

driver.findElement(By.className("mceContentBody")).sendKeys("YOOOO");

driver.switchTo().defaultContent();

光标在编辑器内部闪烁,但是未发送文本。我也尝试过这种轻微的变化,没有任何运气。

//find tinymce iframe

editorFrame = driver.findElement(By.cssSelector(".col_right iframe"));

//switch to iframe

driver.switchTo().frame(editorFrame);

WebElement body = driver.findElement(By.className("mceContentBody"));

body.sendKeys("YOOOO");

driver.switchTo().defaultContent();

回答:

对于您的特定代码,我建议

  • 尝试不同的定位mceContentBody,例如使用By.cssSelector(".mceContentBody")By.cssSelector("body")等等。

  • 发送密钥之前,请先单击主体。

    driver.findElement(By.tagName("body")).click().sendKeys("YOOOO");

  • 设置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')");

进一步阅读:使用Selenium WebDriver测试所见即所得的编辑器

以上是 无法使用Selenium WebDriver将Keys()发送到TinyMCE 的全部内容, 来源链接: utcz.com/qa/407595.html

回到顶部