Javascript 如何使用webdriver在iframe中设置标记的innerHTML
通过使用runScript,它会写入textarea,但似乎不会写入blockquote标记中Javascript 如何使用webdriver在iframe中设置标记的innerHTML,javascript,selenium,selenium-webdriver,Javascript,Selenium,Selenium Webdriver,通过使用runScript,它会写入textarea,但似乎不会写入blockquote标记中 textareaID.setHTML("Some Text"); selectFrame选择框架,sendKeys发送我想要的文本,但它也不会将文本写入p标记中。当我将它运行到//html/body时,它工作得很好,但它似乎不适用于//html/body/blockquote/p修改您的 安置 我想看看常见问题: 从selenium wiki: 答:假设iframe名为foo: 有时这不起作用,这是
textareaID.setHTML("Some Text");
selectFrame选择框架,sendKeys发送我想要的文本,但它也不会将文本写入p标记中。当我将它运行到//html/body时,它工作得很好,但它似乎不适用于//html/body/blockquote/p修改您的
安置
我想看看常见问题: 从selenium wiki: 答:假设iframe名为foo: 有时这不起作用,这是因为iframe没有任何内容。在Firefox上,您可以在sendKeys之前执行以下操作: 这是必需的,因为默认情况下iframe没有内容:没有任何内容可以发送键盘输入。这个方法调用插入了一个空标记,可以很好地设置所有内容。 请记住,一旦完成,请退出该框架,因为所有进一步的交互都将与该特定框架进行: driver.switchTo.defaultContent
谢谢你的回复,但是我没有修改html的权限。我只是想测试一下函数,在iframe中,onclick事件的blockquote和p标记会显示出来
textareaID.setHTML("Some Text");
selectFrame(iframeLocator);
sendKeys("//html/body/blockquote/p", "Some Text");
<p id="text">
"set text here"
</p>
<script>
document.getElementById("text").innerHTML="some new text"
</script>
driver.switchTo().frame("foo");
WebElement editable = driver.switchTo().activeElement();
editable.sendKeys("Your text here");
((JavascriptExecutor) driver).executeScript("document.body.innerHTML = '<br>'");