javascript - 无法使用 Java 在 Selenium WebDriver 中定位/填充文本框

标签 javascript java selenium-webdriver hidden-field

<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 - 我可以手动向文本框添加文本

最佳答案

您正在尝试在 input 中输入一个值,但您正在传递 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 内部的正文中没有任何元素,这就是它显示空正文的原因。

关于javascript - 无法使用 Java 在 Selenium WebDriver 中定位/填充文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54815186/

相关文章:

javascript - 如何禁用特定div之外的点击

javascript - Chart.js 圆环图无法正常工作

javascript - 拖放时 DIV 中的表格粘在一起

java - apache httpclient 多次执行

java - 比较器适用于我的 ArrayList 但代码看起来不对?

java - ChromeDriver 文件上传示例

javascript - 我无法将 Source 按钮添加到 CKEditor 4 的工具栏

Java: File#reName() 成功重命名文件,但文件对象仍然引用旧名称

excel - 使用 FindElementbyXpath() 获取 Selenium Basic 中可填充框的行和列名称

java - 如何在Selenium 2的ChromeDriver中设置HTTP代理?