使用vba抓取网站中的标签

时间:2016-11-17 00:21:01

标签: javascript html vba

我试图点击网站中的一个标签,该标签是用onmouse事件激活的。这是html的片段:

11/17/2016 09:00:00 AM

代码标记的最后一行" p"当我"检查元素"。

时,它就是我需要的地方

到目前为止,下面是我的vba代码片段:

<frame name ="nav">
<body><div id="tab2flyover0" 
onmouseover="document.getElementById('tab2flyover0DivShim').style.width = document.getElementById('tab2flyover0').offsetWidth;
onmouseout="document.getElementById('tab2flyover0').style.visibility='hidden';document.getElementById('tab2flyover0DivShim')
onmouseover="document.getElementById('tab2_tab2Cell0')onmouseout="document.getElementById('tab2_tab2Cell0')
onclick="parent.frames[0].changeTopTabs('tab2TableDetail') parent.frames[0].changeContentFrame('/MISO/DART/selectDARTParticipant.do');">    
<p id="tab2_tab2flyover0text0" style="color: rgb(255, 153, 0);">Select Party</p>

我得到的错误说:&#34;方法&#39;框架&#39;对象JScriptTypeInfo&#39;失败&#34 ;.

我之前从未处理过onmouse事件,也许这就是我遇到问题的地方?

2 个答案:

答案 0 :(得分:0)

带有onclick事件的标记是标记

<div id="tab2flyover0">

您正在选择以下标记并单击:

<p id="tab2_tab2flyover0text0" style="color: rgb(255, 153, 0);">Select Party</p>

我会将代码更改为以下内容并再试一次,我刚刚做了类似的事情并且没有任何问题。 (使用Powershell而不是VBA)

Set dar = htmldoc.frames("nav").document.getElementById("tab2flyover0")

答案 1 :(得分:0)

证明难以找到也使用框架的网站。但我会将代码更多地打破调试。例如。 添加框架文档的删除。

Dim frameDoc As MSHTML.IHTMLDocument

然后分手:

Set dar = htmldoc.frames("nav").document.getElementById("tab2flyover0")

Set frameDoc = htmldoc.frames("nav").document
Set Dar = frameDoc.getElementById("tab2flyover0")

此外,您尚未声明dar的类型。 然后检查发生错误的代码行。