Powershell "InternetExplorer.Application" нажмите на выпадающий - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь нажать «CSV (с разделителями-запятыми)» с помощью Powershell, чтобы иметь возможность сохранить этот отчет.

Dropdown List]

Вот код, раскрывающийся в раскрывающемся списке .

<div class="MenuBarBkGnd" id="ReportViewerControl_ctl09_ctl04_ctl00_Menu" style="display: block; visibility: visible; position: absolute; z-index: 1;">
                                        <div class="DisabledButton">
                                            <a title="XML file with report data" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('XML');" href="javascript:void(0)" alt="XML file with report data">XML file with report data</a>
                                        </div><div class="DisabledButton">
                                            <a title="CSV (comma delimited)" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('CSV');" href="javascript:void(0)" alt="CSV (comma delimited)">CSV (comma delimited)</a>
                                        </div><div class="DisabledButton">
                                            <a title="PDF" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('PDF');" href="javascript:void(0)" alt="PDF">PDF</a>
                                        </div><div class="DisabledButton">
                                            <a title="MHTML (web archive)" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('MHTML');" href="javascript:void(0)" alt="MHTML (web archive)">MHTML (web archive)</a>
                                        </div><div class="DisabledButton">
                                            <a title="Excel" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('EXCELOPENXML');" href="javascript:void(0)" alt="Excel">Excel</a>
                                        </div><div class="DisabledButton">
                                            <a title="TIFF file" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('IMAGE');" href="javascript:void(0)" alt="TIFF file">TIFF file</a>
                                        </div><div class="DisabledButton">
                                            <a title="Word" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('WORDOPENXML');" href="javascript:void(0)" alt="Word">Word</a>
                                        </div><div class="HoverButton">
                                            <a title="TXT (Pipe delimited)" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('PIPE');" href="javascript:void(0)" alt="TXT (Pipe delimited)">TXT (Pipe delimited)</a>
                                        </div>
                                    <div style="left: 0px; top: 0px; width: 26px; height: 368px; position: absolute; z-index: -1; opacity: 0.05; background-color: black;"></div></div>

Приведенный ниже код вызывает раскрывающийся список.

$DownloadButton = $ie.Document.getElementById('ReportViewerControl_ctl09_ctl04_ctl00_ButtonImgDown')
$DownloadButton.click()

1 Ответ

0 голосов
/ 27 января 2020

Я пытался сделать тест с вашим кодом. Я поставил одно предупреждение на нажатие опции CSV (через запятую). Поэтому, когда код нажимает на эту указанную опцию c, он покажет предупреждающее сообщение. Это означает, что код щелкает по правильному элементу.

Здесь изменено HTML:

<!doctype html>
<html>
<head>
<script>
function abc()
{
    alert("Clicked...");
}
</script>
</head>
<body>
<div class="MenuBarBkGnd" id="ReportViewerControl_ctl09_ctl04_ctl00_Menu" style="display: block; visibility: visible; position: absolute; z-index: 1;">
                                        <div class="DisabledButton">
                                            <a title="XML file with report data" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('XML');" href="javascript:void(0)" alt="XML file with report data">XML file with report data</a>
                                        </div><div class="DisabledButton">
                                            <a title="CSV (comma delimited)" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="abc()" href="javascript:void(0)" alt="CSV (comma delimited)">CSV (comma delimited)</a>
                                        </div><div class="DisabledButton">
                                            <a title="PDF" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('PDF');" href="javascript:void(0)" alt="PDF">PDF</a>
                                        </div><div class="DisabledButton">
                                            <a title="MHTML (web archive)" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('MHTML');" href="javascript:void(0)" alt="MHTML (web archive)">MHTML (web archive)</a>
                                        </div><div class="DisabledButton">
                                            <a title="Excel" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('EXCELOPENXML');" href="javascript:void(0)" alt="Excel">Excel</a>
                                        </div><div class="DisabledButton">
                                            <a title="TIFF file" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('IMAGE');" href="javascript:void(0)" alt="TIFF file">TIFF file</a>
                                        </div><div class="DisabledButton">
                                            <a title="Word" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('WORDOPENXML');" href="javascript:void(0)" alt="Word">Word</a>
                                        </div><div class="HoverButton">
                                            <a title="TXT (Pipe delimited)" class="ActiveLink" style="padding: 8px 8px 3px; font-family: Verdana; font-size: 8pt; text-decoration: none; display: block; white-space: nowrap;" onclick="$find('ReportViewerControl').exportReport('PIPE');" href="javascript:void(0)" alt="TXT (Pipe delimited)">TXT (Pipe delimited)</a>
                                        </div>
                                    <div style="left: 0px; top: 0px; width: 26px; height: 368px; position: absolute; z-index: -1; opacity: 0.05; background-color: black;"></div></div>
</body>
</html>

Код VBA:

Sub demo()

    Dim URL As String
    Dim IE As Object
    Dim i As String

    Set IE = CreateObject("InternetExplorer.Application")


    IE.Visible = True


    URL = "D:\Backup20190913\tests\391.html"


    IE.Navigate URL


    Do While IE.ReadyState = 4: DoEvents: Loop
    Do Until IE.ReadyState = 4: DoEvents: Loop

    i = IE.document.getelementsbytagname("a").Item(1).innerHTML


    If i = "CSV (comma delimited)" Then
        IE.document.getelementsbytagname("a").Item(1).Click

    End If

    Set IE = Nothing


End Sub

Этот код VBA найдет ссылку и попытайтесь сопоставить его внутренний HTML со значением stati c. Если он получит совпадение, он щелкнет по нему.

Вывод:

enter image description here

Далее, вы можете попытаться изменить код согласно ваши собственные требования. Если у вас есть какие-либо вопросы, вы можете сообщить нам об этом.

...