<TD class=CuteEditorFrameContainer style="PADDING-BOTTOM: 2px; PADDING-TOP: 1px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px" height="100%" colSpan=2>
<IFRAME id=obj_oOpera class=CuteEdit style="BORDER-TOP: #c0c0c0 1px solid; HEIGHT: 100%; BORDER-RIGHT: #c0c0c0 1px solid; WIDTH: 100%; BORDER-BOTTOM: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BACKGROUND-COLOR: white" frameBorder=0>
<HTML>
<HEAD>
<STYLE>BODY {
PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px
}
</STYLE>
</HEAD>
<BODY contentEditable=true>
</BODY>
</HTML>
</IFRAME>
<INPUT id=oOpera type=hidden name=oOpera>
</TD>
问题 我正在尝试填充评论框,但由于以下问题而无法显示
-检查框将我带到没有属性的地方- BODY contentEditable = true
JavascriptExecutor jse =(JavascriptExecutor)驱动程序; jse.executeScript(“ document.getElementsByName('obj_oOpera')[0] .setAttribute('type','text');”); driver.findElement(By.xpath(“ // iframe [@ id ='obj_oOpera']”))。clear(); driver.findElement(By.xpath(“ // iframe [@ id ='obj_oOpera']”))。sendKeys(“ Opera”);
-当我使用 IFRAME或INPUT 标签中的属性时,会引发异常元素不得隐藏/只读或禁用
其他无效的方法 更换框架。 Java脚本和 通常的发送密钥
PS -我可以在文本框中添加文本
答案 0 :(得分:1)
您尝试在输入中输入一个值,但您正在传递iframe的ID。只需将其替换为输入ID,即可解决您的问题。
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("document.getElementsByName('oOpera')[0].setAttribute('type', 'text');");
driver.findElement(By.xpath("//input[@id='oOpera']")).clear();
driver.findElement(By.xpath("//input[@id='oOpera']")).sendKeys("Opera");
此外,您的输入字段在iframe之外,并且iframe中的body中没有任何元素,这就是为什么它显示为空的body。