Tro*_*roy 5 firefox webdriver ckeditor selenium-webdriver
我正在使用Java 14中的Webdriver和Firefox 14.
我的问题是我似乎无法让webdriver与CkEditor很好地配合.我已经找到了解决方案但无法在Firefox 13或14中工作.这些是我尝试过的解决方案:
正常的sendKeys拦截
textArea.sendKeys();
Run Code Online (Sandbox Code Playgroud)
要么
textArea.click();
textArea.sendKeys();
Run Code Online (Sandbox Code Playgroud)
结果:此代码不会在CkEditor中生成任何文本
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!");
Run Code Online (Sandbox Code Playgroud)
结果:此代码将转到站点并清除编辑器,但不会将任何文本放入CkEditor实例中.
AdvancedUserInteractions - 例如.多个变体中的Actions()
textArea.click();
new Actions(driver).sendKeys("Hello, ckeditor!").build().perform();
Run Code Online (Sandbox Code Playgroud)
和
new Actions(driver).sendKeys(textArea, "Hello, ckeditor!").build().perform();
Run Code Online (Sandbox Code Playgroud)
和
new Actions(driver).click(textArea).sendKeys("Hello, ckeditor!").build().perform();
Run Code Online (Sandbox Code Playgroud)
结果:这些不会在CkEditor中生成任何文本
切换iframe(根据上面的问题3890)并使用AdvancedUserInteractions
代码类似于:
driver.switchTo().frame(iframe);
textArea.click();
new Actions(driver).sendKeys("Hello, ckeditor!").build().perform();
Run Code Online (Sandbox Code Playgroud)
结果:引发错误" 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>');");
Run Code Online (Sandbox Code Playgroud)
结果:当" org.apache.commons.lang.StringEscapeUtils.escapeHtml "未用于将" setText " 转换为Html条目时,排除"/"字符.此解决方案还会在大字符串上抛出" ERROR:null ".
关于我没有尝试过的事情的任何想法?修复我尝试过的事情?还有其他建议吗?
谢谢!
有时,文本区域被处理为 Iframe,您必须切换到该框架并运行 JS 命令才能在其上键入。
final WebDriver frame = driver.switchTo().frame(findElement(By.id("locator")); //any locator
((JavascriptExecutor) driver).executeScript("document.body.innerHTML='" + TestValueThatYouWantToType + "'");
driver.switchTo().defaultContent();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4432 次 |
| 最近记录: |