Używam Webdriver w Javie z Firefoksem 14.użyciu selen Webdriver z CKEditor Firefox 14
Moim problemem jest to, że nie wydaje się uzyskać webdriver do odegrania estetycznie z CKEditor. Szukałem rozwiązania, ale nie byli w stanie dostać się obróbce w obu Firefox 13 lub 14. Są to rozwiązania, które próbowałem:
Normalne SendKeys interction
textArea.sendKeys();
lub
textArea.click(); textArea.sendKeys();
Wynik: Ten kod nie będzie produkować dowolny tekst w CKEditor
Kod z Selenium issue 3890
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!");
Wynik: Kod ten trafi do serwisu i wyczyścić edytor, ale nie będzie można umieścić w dowolnym tekstem do instancji CKEditor.
AdvancedUserInteractions - np. Akcje() w wielu odmianach
textArea.click(); new Actions(driver).sendKeys("Hello, ckeditor!").build().perform();
i
new Actions(driver).sendKeys(textArea, "Hello, ckeditor!").build().perform();
i
new Actions(driver).click(textArea).sendKeys("Hello, ckeditor!").build().perform();
wynik: To nie będzie produkować dowolny tekst w CKEditor
przełączania ramek iframe (zgodnie z wydaniem 3890 powyżej) i przy użyciu Advan cedUserInteractions
kodu podobnego do:
driver.switchTo().frame(iframe); textArea.click(); new Actions(driver).sendKeys("Hello, ckeditor!").build().perform();
Wynik: Zgłasza błąd "c.value jest niezdefiniowana"
Używanie języka JavaScript oraz API CKEditor
JavascriptExecutor js = (JavascriptExecutor) d; System.out.println("[debug] Set Text: " + setText); js.executeScript("CKEDITOR.instances.editor1.setData('<p> "+ setText +"</p>');");
Wynik: wyklucza znak "/", gdy "org.apache.commons.lang.StringEscapeUtils.escapeHtml" jest/nie jest używane do konwersji "setText" na wpisy html. To rozwiązanie wyrzuca również "BŁĄD: null" na dużych ciągach.
Jakieś pomysły na rzeczy, których nie próbowałem? Naprawiono rzeczy, które próbowałem? Jakieś inne sugestie?
Dzięki!