【发布时间】:2018-04-19 10:33:54
【问题描述】:
HTML 代码:
<div class="listRte__editorFrame">
<iframe src="about:blank" style="height: 150px;">
#document
<html>
<head>
<body>
<button class="__clipped">
<div data-ghosttext="Add a detailed description here." contenteditable="true">
::after
</div>
</button>
</body>
</head>
</html>
</iframe>
</div>
我想在 div 中键入文本。 手动添加文本后的html:
<div contenteditable="true">abcd</div>
我尝试使用 javascript 输入文本:
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("document.evaluate('//div[@data-ghosttext=\"Add a detailed description here.\"]', document, null, 9, null).singleNodeValue.innerHTML="+ "\"abc\"");
但它给了我错误:
org.openqa.selenium.JavascriptException: TypeError: document.evaluate(...).singleNodeValue 为空
我也尝试切换到 iframe,但切换到 iframe 时无法识别 div。另外,当我尝试执行以下命令时,我得到了size=0。但是,当我检查元素时,页面上有 3 个 iframe。
int size = driver.findElements(By.tagName("iframe")).size();
能否请我在 Java/js 中获取确切的命令,我可以使用它在 div 元素中键入内容。 我使用 testng 框架研究 selenium
【问题讨论】:
-
您的问题是否已解决,或者您仍在寻找答案?
-
解决了。我所要做的就是先切换 iFrame,然后像往常一样在 div 元素中传递文本。这里不需要 JavaScript。
标签: javascript java selenium