我正在尝试使用VBA excel自动化此网站。我很震惊,我必须在2 radio buttons
之间进行选择。因为我是VBA的新手,所以真的很混淆这些单选按钮的编码部分。
这是单选按钮的 HTML 脚本。
<li class="required or ok" id="petGenderLI">
<div class="formElTop" id="petGenderMainDiv">
<div class="leftCol" id="petGenderLeftDiv">
<label id="yourPetGenderField-label"><span class="petNameToReplace">Your pet</span>'s <span style="white-space: nowrap;">Gender</span></label>
</div>
<div class="rightCol radios" id="petGenderRightDiv">
<div class="buttonLeft">
<input name="pets[0].gender" class="radio" id="yourDetailsPolicyHolderPetGender-f0" type="radio" value="NWA_PET_M" data-di-field-id="pets0Gender"><label for="yourDetailsPolicyHolderPetGender-f0">Male</label>
</div>
<div class="buttonRight">
<input name="pets[0].gender" class="radio" id="yourDetailsPolicyHolderPetGender-m0" type="radio" value="NWA_PET_F" data-di-field-id="pets0Gender"><label for="yourDetailsPolicyHolderPetGender-m0">Female</label>
</div>
</div><span class="errorIcon"> </span><div class="errorMessage"><div class="errorTop"><div class="errorContent"></div></div></div>
<div class="clearFloat" id="petGenderTailDiv"> </div>
</div>
</li>
答案 0 :(得分:0)
从您提供的HTML中,您可以按类别名称option
来获取选项按钮。您没有显示足够的HTML,以确保这将限制为给定示例中的两个。假设他们这样做了,这将返回以下内容(假设下图中的"."
是className
,并且.option
的整个查询字符串与.document.getElementsByClassName("radio")
相同。在HTML上使用CSS查询复制了VBA。
CSS查询:这将向您显示以下代码捕获的元素
VBA代码大纲:
我们使用IE实例返回到HTML并返回加载的HTML文档的.getElementsByClassName
方法将它们的类名作为选项按钮的目标。这是一个返回的0基本集合(如上图所示),因此对于第一个选项,您将按索引从0开始访问项目。
Option Explicit
Public Sub GetInfo()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
With ie
.Visible = True
.navigate "yourURL"
While .Busy Or .readyState < 4: DoEvents: Wend
Dim radioButtons As Object
Set radioButtons = .document.getElementsByClassName("radio")
radioButtons(0).Click '<== first option
radioButtons(1).Click '<== first option
'Quit '<== Remember to quit application
End With
End Sub