gpt4 book ai didi

javascript - VBA:查找并更新 HTML 表单中的输入字段

转载 作者:行者123 更新时间:2023-12-03 11:12:01 25 4
gpt4 key购买 nike

我正在尝试访问 HTML 表单的地址字段并输入文本字符串,然后单击提交表单按钮。我尝试使用:

Set ObjCollection = ObjIE.Document.getElementsByTagName("input")

但这不起作用,因为它只找到输入标签,而我的输入字段似乎是列表的一部分。

这里是 HTML 源代码,似乎是用 Javascript 编写的:

 <script type="text/javascript"

我正在尝试访问输入 id="addressID"并使用输入 type="button"id="SubmitForm"提交(第 5 行和第 6 行):

<div id="searchbar">
<form id="addressForm" action="#" onsubmit="" >
<fieldset><legend>Locate address</legend>
<ul class="formFields">
<li><label for="address">Address</label><input id="addressID" size="60" class="text" type="text" name="address" /></li>
<li><input type="button" id="SubmitForm" value="Find address" class="form-button" /> </li>
</ul>
</fieldset>
</form>
<form id="SolarViewForm" action="#" id="sideseach">
<fieldset><legend>Create SolarView</legend>
<ul class="formFields">
<li>
<label for="latitude">Latitude</label>
<input id="id_latitude" size="10" maxlength="30" type="text" name="latitude" />
</li>
<li>
<label for="longitude">Longitude</label>
<input id="id_longitude" size="10" maxlength="30" type="text" name="longitude" />
</li>
<li>
<label for="zenith_angle">Panel tilt (degrees)-optional</label>
<input id="id_zenith_angle" size="10" maxlength="30" type="text" name="zenith_angle" />
</li>
<li>
<label for="azimuth_angle">Panel bearing (degrees)-optional</label>
<input id="id_azimuth_angle" size="10" maxlength="30" type="text" name="azimuth_angle" />
</li>
<li>
<label for="image_title">Image title</label>
<input id="id_image_title" size="10" maxlength="30" type="text" name="image_title" />
</li>
<input type="hidden" name="_csrf_token" value="5e3de3851eafb868ee9f64e5ea1136e2" id="csrf_token" /> <li><input type="button" id="create" class="form-button"
value="Create SolarView" /></li>

</ul>
</fieldset>
</form>

</div>

我想使用这种方法来更新字段并单击按钮:

SiteAddress = ActiveSheet.Range("B3").Value & ", " & ActiveSheet.Range("B4").Value & ", " & ActiveSheet.Range("B5").Value

Set ObjCollection = ObjIE.Document.getElementsByTagName("input")

i = 0
While i < ObjCollection.Length
If ObjCollection(i).Name = "address" Then

ObjCollection(i).Value = SiteAddress

Else
If ObjCollection(i).Type = "button" And _
ObjCollection(i).ID = "SubmitForm" Then

Set objElement = ObjCollection(i)

End If
End If
i = i + 1
Wend
objElement.Click

我一直在尝试收集标签集合以使用以下代码循环遍历字段:

Set ObjCollection = ObjIE.Document.All.searchbar.getElementsByTagName("input")

我从这里的一篇非常好的帖子中得到了这个想法:

VBS: target fields by div and tabIndex from external .vbs

我觉得它更接近解决我的问题,尽管这仍然只能得到与以下相同的结果:

Set ObjCollection = ObjIE.Document.getElementsByTagName("input")

对我来说,问题的很大一部分似乎是没有提出正确的问题,所以我花了很长时间试图找到这个问题的答案,如果有合适的答案,我将非常感激。

最佳答案

如果您想在地址文本框中输入文本,请使用以下命令:

IE.document.getElementById("addressID").Value = "test"

如果您想单击该按钮,请使用:

IE.document.getElementById("SubmitForm").Click

至少这对我有用。让我知道进展如何。

关于javascript - VBA:查找并更新 HTML 表单中的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27538494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com