VBA IE单击/显示不带id或标记的javascript非超链接
如何使用VBA在网站上单击/显示没有id或标记的javascript 我使用Excel 2010进行以下参考: Visual Basic for Applications Microsoft Excel 14.0对象库 OLE自动化 Microsoft Office 14.0 Ojbect库 Microsoft HTML对象库 Microsoft Internet控件 表格中有文本“显示详细信息”:VBA IE单击/显示不带id或标记的javascript非超链接,javascript,vba,internet-explorer,Javascript,Vba,Internet Explorer,如何使用VBA在网站上单击/显示没有id或标记的javascript 我使用Excel 2010进行以下参考: Visual Basic for Applications Microsoft Excel 14.0对象库 OLE自动化 Microsoft Office 14.0 Ojbect库 Microsoft HTML对象库 Microsoft Internet控件 表格中有文本“显示详细信息”: <table class="table table-striped cols20 sche
<table class="table table-striped cols20 schedule-table" id="container-no-1-1">
<colgroup>...</colgroup>
<tbody>
<tr class="container-row">
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td class="hidden-print">
<a title="Details to be displayed after Gate in full move" data-url="/trackingapp/transportplan?equipmentNo=ABCD1234567&shipmentId=60G0KZBCBKY5C" class="pull-right show-toggle with-icon" data-target="#more_info_1_1" href="#more_info_1_1" data-toggle-text="Hide details"><i class="icon-expand"></i>"Show details"
</a>
</td>
</tr>
</tbody>
</table>
但是,一旦用户交互单击“显示详细信息”,HTML将:
<table class="table table-striped cols20 schedule-table" id="container-no-1-1">
<colgroup>...</colgroup>
<tbody><tr class="container-row">
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td class="hidden-print">
<a title="Details to be displayed after Gate in full move" data-url="/trackingapp/transportplan?equipmentNo=ABCD1234567&shipmentId=60G0KZBCBKY5C" class="pull-right show-toggle with-icon" data-target="#more_info_1_1" href="#more_info_1_1" data-toggle-text="Hide details"><i class="icon-collapse"></i>Hide details</a>
</td>
<td class="hidden-print">
<a title="Details to be displayed after Gate in full move" data-url="/trackingapp/transportplan?equipmentNo=ABCD1234567&shipmentId=60G0KZBCBKY5C" class="pull-right show-toggle with-icon" data-target="#more_info_1_1" href="#more_info_1_1" data-toggle-text="Hide details">
<i class="icon-collapse"></i>
Hide details
</a>
</td>
</tr>
</tbody></table>
<div class="show loaded" id="more_info_1_1">
<div class="row transport-plan-details" style="margin-left: 0;">
::before
<div class="offset1 transport-plan location-detail well well-white margin20right">
<h4 class="location">
<span class=""></span>
"Singapore"
</h4>
<table class="row container-move past transport-plan-tbl cols20">
::before
<colgroup>....</colgroup>
<tbody><tr>
<td></td>
<td>
<i class="icon-GATE-OUT-EMPTY">
::before
</i>
</td>
<td>
"15 Feb 2016"
<br>
16:47"
</td>
<td>
<strong>Gate out, empty</strong>
</td>
<td></td>
</tr>
</tbody>
::after
</table>
...
...
...
...
...
...
::之前
“新加坡”
::之前
....
::之前
“2016年2月15日”
16:47"
大门关闭,空的
::之后
因此,我正在寻找一种方法,单击“显示详细信息”,然后在VBA中返回“Singapore”、“2016年2月15日”、“16:47”和“Gate out,empty”
我做错了什么?我试图回答。因为源html文件只有一个元素。您可以使用document.getElementsByTagname(“a”)(0)获取元素。 如下图所示:
set myEle=document.getElementsByTagname("a")(0)
myEle.click
Do While ObjIE.Busy Or ObjIE.readyState <> 4: DoEvents: Loop
将html捕获到变量后,可以使用instr
,mid
剪切变量
如果它也不正常,您可以尝试使用webquery捕获数据。谢谢您,Kenneth。但是myEle.click不会显示隐藏的内容,也不会返回任何内容。您好,忍者1。您是否测试过myEle当前是否映射到当前项。2.由于链接指向另一个文件,您确定不需要一些cookie或者会话变量。顺便说一句,我想知道你为什么不直接打开目标链接,而不是打开一个链接并调用一个单击操作。谢谢你,Kenneth。使用字符串url直接打开目标链接会返回一个搜索错误页。另外,我认为以“60GOKZ”开头的字符串。。。“每次搜索似乎都是随机的。我将看看您对cookie和会话变量的建议。
url = "http://www.whatever.com/trackingapp/transportplan?equipmentNo=ABCD1234567&shipmentId=60G0KZBCBKY5C"
Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
XMLHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
XMLHTTP.setRequestHeader "referer", "http://www.whatever.com"
XMLHTTP.Open "GET", url, False
XMLHTTP.send
result = XMLHTTP.responseText
result = trim(result)
Set XMLHTTP = Nothing
set myEle=document.getElementsByTagname("a")(0)
myEle.click
Do While ObjIE.Busy Or ObjIE.readyState <> 4: DoEvents: Loop
url = "http://www.whatever.com/trackingapp/transportplan?equipmentNo=ABCD1234567&shipmentId=60G0KZBCBKY5C"
Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
XMLHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
XMLHTTP.setRequestHeader "referer", "http://www.whatever.com"
XMLHTTP.Open "GET", url, False
XMLHTTP.send
result = XMLHTTP.responseText
result = trim(result)
Set XMLHTTP = Nothing