我遇到了一个让我感到难过的问题。
我的问题如下: 我想使用VBA检查IE中的radiobutton。应该简单吧?我检查了这个网站上的解决方案,我尝试将它们应用到我的场景中。但是,似乎我甚至无法得到这个元素......
这是HTML源代码段:
<table class="MainTable" width="962px">
<tr>
<td class="HistorySections" style="height: 29px; vertical-align: top;">
<span id="lblReportType" class="Panel4" style="display:inline-block;height:15px;width:409px;"> Report Type</span>
<table class="MainTable" width="413" style="height: 60px">
<tr>
<td style="height: 22px">
<span style="display:inline-block;width:110px;"><input id="optRCV" type="radio" name="RptType" value="optRCV" onclick="javascript:setTimeout('__doPostBack(\'optRCV\',\'\')', 0)" /><label for="optRCV">Receivables</label></span>
从我可以收集的信息来看,我的无线电按钮被称为“optRCV”。
我根据我在这里学到的东西尝试了各种方法检查无线电按钮,但它总是失败。在使用radiobutton的线路上没有设置对象错误。因此,我尝试了一条简单的线路来查看错误。
MsgBox IE.document.getElementById("optRCV").ID
根据我对VBA和IE的有限理解,这应该显示Radiobutton的ID,对吧?我尝试了类似的东西以确保我正确使用它
MsgBox IE.document.getElementsByTagName("TABLE")(0).ID
此行显示带有ID的消息框(ID为空白,但不会导致错误)。
有什么理由,为什么我不能使用它的ID与radiobutton互动?有趣的是,当我点击网页的顶部并使用View source时,它会显示与我点击radiobutton所在网页部分时不同的源代码。
所以我的想法是,我首先需要告诉IE查看网页的正确部分,但我不知道该怎么做。
有什么想法吗?
答案 0 :(得分:0)
MsgBox IE.document.getElementsByTagName("TABLE")(0).ID
你的代码返回表格中包含span,td,tr等元素的集合,所以如果你想获得radiobutton,你就不应该拿起第一个元素
您的代码应如下所示:
IE.document.getElementById("optRCV").getAttribute("id")