使用webdriver与可爱的编辑器交互

有谁知道如何使用webdriver与可爱的编辑器进行交互。 我想清除文字?

 

以下代码不起作用?

 driver.switchTo().frame(0); driver.switchTo().activeElement().clear(); 

我在http://cutesoft.net/example/general.aspx上看了一下Cute Editor的演示,现在我明白了为什么你使用了driver.switchTo().activeElement()而不是寻找textarea / input,因为iframe是’textarea’,你想要清除iframe中的所有内容。

我认为你的类似于演示

  

我不认为Selenium提供删除节点的任何东西,但你可以通过JavascriptExecutor实现这一点。 警告 :未经测试的代码,只有逻辑在这里。 你需要自己调试一下。

 // first try to avoid switching frames by index, unless you have no other ways. // if you have only one frame with class name CuteEditorFrame WebElement editorFrame = driver.findElement(By.cssSelector(".CuteEditorFrame")); driver.switchTo().frame(editorFrame); // if the id 'CE_Editor1_ID_Frame' not dynamic WebElement editorFrame = driver.findElement(By.cssSelector("#CE_Editor1_ID_Frame")); driver.switchTo().frame(editorFrame); // driver.switchTo().frame("CE_Editor1_ID_Frame"); // then remove everything inside the iframe's body JavascriptExecutor js; if (driver instanceof JavascriptExecutor) { js = (JavascriptExecutor)driver; } WebElement editorBody = driver.findElement(By.cssSelector("body")); js.executeScript("arguments[0].innerHTML = ''", editorBody); // alternatively, using sendKeys directly is a better way WebElement body = driver.findElement(By.tagName("body")); // then you find the body body.sendKeys(Keys.CONTROL + "a"); // send 'ctrl+a' to select all body.SendKeys("Some text"); 
Interesting Posts