html 通过JavaScript在Webview中自动填写表单(Android)

yqyhoc1h  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(161)

导言

我想在Android中自动加载到webview的网页。我会加载一个网页,然后它会自动填充页面中的字段,它会点击提交按钮,下一页将显示。将填充的值由用户定义之前,并保存到数据库中。该网页不属于我,所以我不能直接从服务器端创建服务。我必须从客户端做所有的事情。

以下是我所做的:
Html代码:

<td>
     <input name="txtRegNo" type="text" id="txtRegNo" placeholder="Enter Registration No" style="height:24px;width:300px;" />
     <span id="RequiredFieldValidator1" style="color:Red;visibility:hidden;">Enter Valid registration No.</span>
</td>

为了填写id txtRegNo,我在网络视图的onPageFinished中使用了以下代码:

String password = "1201329022";
webview.loadUrl("javascript:var uselessvar =document.getElementById('txtRegNo').value='" + password + "';");

我面临的问题:
Html代码:

<td class="rcInputCell" style="width:100%;">
<span id="dpStudentdob_dateInput_wrapper" class="riSingle RadInputRadInput_Default" style="display:block;width:100%;">
<input id="dpStudentdob_dateInput" name="dpStudentdob$dateInput" class="riTextBox riEnabled" type="text">
<input id="dpStudentdob_dateInput_ClientState" name="dpStudentdob_dateInput_ClientState" type="hidden" autocomplete="off" value="        {&quot;enabled&quot;:true,&quot;emptyMessage&quot;:&quot;&quot;,&quot;validationText&quot;:&quot;&quot;,&quot;valueAsString&quot;:&quot;&quot;,&quot;minDateStr&quot;:&quot;01/01/1960&quot;,&quot;maxDateStr&quot;:&quot;01/01/2015&quot;}">
</span>
</td>

要填充id dpStudentdob_dateInput

String date= "5/8/2014";
webview.loadUrl("javascript:var uselessvar =document.getElementById('dpStudentdob_dateInput').value='" + date+ "';");

但是页面上说请输入正确的日期。但是当输入相同的日期时,这被认为是正确的参数,我得到了结果。
要操作的原始网页是this
而且我想在java script的帮助下自动填充字段并点击按钮。

如何实现这一点?请务必提出任何解决方案。

gjmwrych

gjmwrych1#

要在Android应用程序中使用JavaScript自动填写WebView中的表单,您可以使用以下步骤:
1.首先,通过调用WebView示例上的setJavaScriptEnabled(true)方法在WebView中启用JavaScript。
1.接下来,创建一个用于填充表单字段的JavaScript函数。例如:

function fillForm() {
    document.getElementById('username').value = 'myUsername';
    document.getElementById('password').value = 'myPassword';
}

1.此函数将表单中用户名和密码字段的值分别设置为myUsername和myPassword。
1.调用WebView示例上的loadUrl()方法以加载包含要自动填充的表单的网页。例如:

webView.loadUrl("https://www.example.com/login");

1.加载页面后,在WebView示例上调用evaluateJavascript()方法以执行fillForm()函数。例如:

webView.evaluateJavascript("fillForm();", null);

这将执行fillForm()函数,该函数将自动填充表单字段。
注意:如果表单域没有ID,您可能需要使用其他方法来定位和设置它们的值,例如使用getElementsByName()getElementsByClassName()方法。

相关问题