Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA IE单击/显示不带id或标记的javascript非超链接_Javascript_Vba_Internet Explorer - Fatal编程技术网

VBA IE单击/显示不带id或标记的javascript非超链接

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

如何使用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 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&amp;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&amp;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&amp;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&amp;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&amp;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