微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TestFx在WebView中检索HTML的元素内容

如何解决TestFx在WebView中检索HTML的元素内容

我正在使用TestFx在JavaFX应用程序中编写测试。在访问FXML元素之前一切都很好,但是我不知道如何访问WebView HTML内容。 WebView是我的应用程序的主要部分,因此我必须为此添加测试。

下面是我的HTML内容示例,该示例用于在WebView中打开。

    <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元素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();");
            }
        });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。