我使用webdriver的在Java中使用Firefox 14在Firefox 14
我的問題使用Selenium的webdriver與CKEDITOR的是,我似乎無法得到的webdriver與CKEDITOR發揮很好。我一直在尋求解決方案,但一直未能得到任何工作在任何的Firefox 13或14。這些是我已經嘗試瞭解決方案:
正常的SendKeys interction
textArea.sendKeys();
或
textArea.click(); textArea.sendKeys();
結果:此代碼不會在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!");
結果:此代碼將去的網站,並清除編輯器,但不會把任何文本到CKEditor的實例。
AdvancedUserInteractions - 例如,行動()在多種變化
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
開關內部框架,這些都不會產生任何文本(根據上述問題3890)並使用Advan cedUserInteractions
代碼類似於:
driver.switchTo().frame(iframe); textArea.click(); new Actions(driver).sendKeys("Hello, ckeditor!").build().perform();
結果:拋出錯誤 「c.value未定義」
使用JavaScript和CKEDITOR阿比
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條目「/」字符。此解決方案還會在大型字符串上引發「錯誤:空」。
任何想法,我還沒有嘗試的東西?修復了我嘗試過的事情?還有其他建議嗎?
謝謝!