无法使用Java在Selenium WebDriver中找到/填充文本框

问题描述 投票:0回答:1

<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']”))明确(); driver.findElement(By.xpath( “// IFRAME [@ ID = 'obj_oOpera']”))的SendKeys( “歌剧”);

- 当我使用来自IFRAME或INPUT标签的属性时抛出异常元素不能隐藏/只读或禁用

其他不起作用的方法改变了框架。 Java脚本和常用的发送密钥

PS - 我能够手动将文本添加到文本框

javascript java selenium-webdriver hidden-field
1个回答
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中的正文中没有元素,这就是显示空体的原因。

© www.soinside.com 2019 - 2024. All rights reserved.