【发布时间】:2016-10-19 08:01:02
【问题描述】:
我对 VBA 比较陌生,我正在努力实现这一目标,
- 导航到网址
- 单击一个按钮会打开一个包含 3 个选项卡的弹出窗口
- 点击第三个标签
- 报废一些信息
我已经成功使用 1 和 2。但是我无法使用 VBA 单击弹出窗口中的任何选项卡。
这是弹出的 Html sn-p。
'<ul class="clearfix" id="historyTabs">
<li class="ajaxCall jsonpCall selected" id="Tab1"><a href="javascript:;">Some Details</a></li>
<li class="ajaxCall" id="Tab2"><a class="Class1" href="javascript:;">More Details</a></li>
<li id="Tab3"><a href="javascript:;">Even more Details</a><span id="Tab31" style="display: none;"></span></li>
</ul>
我试过了
y = 1
Set ec = HTML.getElementsByTagName("li")
For Each e In ec
idvalue = e.getAttribute("id")
If idvalue = "Tab3" Then
idinnertext = e.innerText
Sheets("Sheet2").Cells(y, 1).Value = idinnertext
e.click
Else
Sheets("Sheet2").Cells(y, 2).Value = "Not Tab3"
y = y + 1
End if
Next e
代码在我的 Excel 工作表中写入“更多详细信息”,但没有单击选项卡。
请求一些帮助。
谢谢, 阿基莱什
【问题讨论】:
-
你也试过.FireEvent("Click"),为什么不GetElementByID("Tab3")?
-
@Nathan_Sav :尝试了两种方法 Nathan。 FireEvent("Click") 我收到“无效参数”错误,GetElemenetByID 没有做任何事情。
-
弹出窗口将有另一个浏览器实例,因此您需要首先通过搜索标题找到该新窗口,然后在该浏览器实例中搜索“Tab3”。您当前的代码似乎正在浏览器的父实例中搜索 Tab3。
-
@J.B.但是当我在 Excel 中弹出窗口后编写 innerText 时,它能够获取第一个选项卡中的值(默认为“单击”)
-
嗨,对不起,我错过了弹出位。看看正确使用 Microsoft HTML 控件,使用正确的对象,您将能够破译这样的事情。找到打开的网络浏览器,这是一个很好的开始msdn.microsoft.com/en-us/library/ms970672.aspx