java - TestFx 在 WebView 中检索 HTML 的元素内容
问题描述
我正在使用 TestFx 在我的 JavaFX 应用程序中编写测试。在我访问 FXML 元素之前一切顺利,但我想知道如何访问 WebView HTML 内容。WebView 是我的应用程序的主要部分,所以我必须为此添加测试。
下面是用于在 WebView 中打开的 HTML 内容示例。
<html>
<body class="mainBody" spellcheck="true" onclick="mainbodyclick()" contenteditable="false" id="idsBody">
<div class="maindiv" id="maindivcontainer" oncontextmenu="maindivcontextcall(event);">
<div id="regdivcontainer" contenteditable="true" style="display:block">
<table contenteditable="false" class="block idsTemp" onclick="tabClick(this)" id="tab0.0737569887231827">
<tbody>
<tr>
<td class="header readOnly"><a name="1test468"></a><font size="3" color="blue">1</font></td>
<td title="block name" class="name" id="tb_name">test468</td>
</tbody>
</table>
</div>
</div>
</body>
</html>
我正在尝试通过以下代码单击 td element id="tb_name" 但它没有用
robot.clickOn("#tb_name");
robot.lookup("#webViewID > #tb_name").query();
robot.lookup("#webViewID > .web-engine #tb_name").query();
robot.lookup("#webViewID > .web-engine > .mainBody > .maindiv > .regdivcontainer #tb_name").query();
谢谢你。
解决方案
Platform.runLater(new Runnable() {
@Override
public void run() {
javafx.scene.web.WebView mywebview=waitsUtil.lookupById(webView,robot);
String RegistrationID=(String) mywebview.getEngine().executeScript("document.body.getElementsByTagName('td')[0].innerHTML;");
RID=RegistrationID.split("<br>");
System.out.println(mywebview.getEngine().executeScript("document.body.innerHTML;"));
mywebview.getEngine().executeScript("document.getElementById('consent-yes').click();");
}
});
推荐阅读
- android - 模拟器:无法在 macbook 上启动
- python - 从 AWS 机密管理器中提取数据库详细信息会引发错误 - Python
- visual-studio-2017 - NuGet 包源可以作为设置从 Visual Studio 2017 导出吗?
- javascript - 将 laravel 变量传递给 Vue 前端
- javascript - 使用 babel 在构建过程中运行自定义函数
- asp.net-core - 访问通用的集线器集合
- json - 如何使用 Python 请求从 REST API 查询 JSON 格式的数据?
- omnet++ - 为什么 DemoSafetyMessage.h Veins5 中 getSenderSpeed() 的返回类型是 Coord&?
- reactjs - Redux MapDispatchToProps 不起作用
- macos - Eclipse RCP 应用程序无法在 MAC 中找到配套共享库