从href

时间:2019-04-16 03:21:13

标签: html vba web-scraping drop-down-menu

我正在编写用于从网站下载信息的代码。我的问题包括使用子菜单下拉菜单访问Href。我尝试了很多代码,但是其中任何一个都可以。

使用getElementById或getElementsByClassName的引用不起作用,因为该对象不支持功能聚焦,单击,selecteditems =“ 1”。下拉菜单的特殊性是,首先单击可对其进行管理,然后对其进行集中管理。第一次单击三个点后,它会悬停一个名为“导出”的唯一选项,而接近它会悬停另外三个选项。我需要最后一个名为“下载相关推演”。这是特定标签的代码。

<a title="Download associated deductions" class="ajax" href="exportPaymentLineItems.lvp?requestUID=&amp;reportType=xls&amp;reportName=Payments and associated deductions&amp;ajax=true&amp;isDrillable=" target="_blank">
    <span class="prgx-icon excel-icon"></span> Download associated deductions
</a>

这是我在VBA中的代码

Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
'...

IE.Document.getElementsByClassName("ajax").Click

使用HTML代码之前的操作,请先单击以打开下拉菜单

<a class="btn btn-dots-vertical" id="dLabel" role="button" aria-expanded="true" href="#" data-toggle="dropdown" data-target="#">
</a>
<ul class="dropdown-menu multi-level dropdown-menu-right" role="menu" aria-labelledby="dropdownMenu">
    <li class="dropdown-submenu">
        <a tabindex="-1" href="#">Export</a>
        <ul class="dropdown-menu dropdown-menuright">

            <li><a title="Excel" href="supplierReport.lvp?requestUID=&amp;reportType=xls&amp;reportName=BasicClaimsPaymentReport" target="_blank"><span class="prgx-icon excel-icon"></span>Excel</a></li>
            <li><a title="CSV" href="supplierReport.lvp?requestUID=&amp;reportType=csv&amp;reportName=BasicClaimsPaymentReport" target="_blank"><span class="prgx-icon csv-icon"></span>CSV</a></li>
            <li><a title="PDF" href="supplierReport.lvp?requestUID=&amp;reportType=pdf&amp;reportName=BasicClaimsPaymentReport" target="_blank"><span class="prgx-icon pdf-icon"></span>PDF</a></li>

            'The one I need to click, download or copy to open in another explorer tab

            <li>
                <a title="Download associated deductions" class="ajax" href="exportPaymentLineItems.lvp?requestUID=&amp;reportType=xls&amp;reportName=Payments and associated deductions&amp;ajax=true&amp;isDrillable=" target="_blank">
                    <span class="prgx-icon excel-icon"></span> Download associated deductions
                </a>
            </li>

        </ul>
    </li>
</ul>

为了下载文档,我希望单击正确的类,复制Href并粘贴到新的资源管理器选项卡中,或者仅通过查询扇区开始下载。

1 个答案:

答案 0 :(得分:0)

尝试使用属性选择器

ie.document.querySelector("[title=Excel]").click

ie.document.querySelector("[title='Download associated deductions']").click

您的行:

IE.Document.getElementsByClassName("ajax").Click

仅因为该方法返回一个集合就行不通。您将需要一个索引,例如

IE.Document.getElementsByClassName("ajax")(0).Click

querySelector返回单个节点。在“”

之间传递给它的css选择器的第一个匹配项