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

使用webdriver与可爱的编辑器进行交互,第1张

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

我在http://cutesoft.net/example/general.aspx上查看了可爱编辑器的演示,现在我明白了为什么使用

driver.switchTo().activeElement()
iframe而不是查找textarea
/ input,因为iframe是’textarea’,并且您想要清除iframe中的所有内容。

我认为您的与演示类似

<iframe id="CE_Editor1_ID_frame" src="cuteeditor_files/template.asp" frameborder="0"  >    <html>        <head></head>        <body> <table>the real stuff in the editor, you want to clear this, right?</table> <br> <br>        </body>    </html></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 CuteEditorframeWebElement editorframe = driver.findElement(By.cssSelector(".CuteEditorframe"));driver.switchTo().frame(editorframe);// if the id 'CE_Editor1_ID_frame' not dynamicWebElement 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 bodyJavascriptExecutor 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 wayWebElement body = driver.findElement(By.tagName("body")); // then you find the bodybody.sendKeys(Keys.ConTROL + "a"); // send 'ctrl+a' to select allbody.SendKeys("Some text");


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5008566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存