【问题标题】:Powershell click on javascript button in internet explorerPowershell单击Internet Explorer中的javascript按钮
【发布时间】:2020-05-01 02:54:33
【问题描述】:

我想在不使用 selenium 的情况下单击此按钮。有什么建议吗?


HTML 代码

<div id="frame">

<!-- START HEADER -->
    <div id="header">

        <div id="logo"><a href="#"><img src="control?view=view/images/ft_logo.gif" alt="logo" border="0" width="245" height="89"></a></div>


        <div id="nav"><a href="control?view=view/filetransfer/thin/fileList.jsp" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('transfers','','control?view=view/images/es/nav_ft_transfers-over.gif',1)"><img src="control?view=view/images/es/nav_ft_transfers.gif" alt="Transferencias" name="transfers" border="0"></a>

                        <a href="control?view=view/filetransfer/thin/auditList.jsp" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('history','','control?view=view/images/es/nav_ft_history-over.gif',1)"><img src="control?view=view/images/es/nav_ft_history.gif" alt="Historia" name="history" border="0"></a>


                   <a href="control?view=view/filetransfer/thin/changePasswordForm.jsp" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('password','','control?view=view/images/es/nav_ft_password-over.gif',1)"><img src="control?view=view/images/es/nav_ft_password.gif" alt="Cambiar contraseña" name="password" border="0"></a>


                    <a href="control?view=servlet/keys" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('pgpkey','','control?view=view/images/es/nav_keys-over.gif',1)"><img src="control?view=view/images/es/nav_keys.gif" alt="Llave PGP" name="pgpkey" border="0"></a>

                  <a href="javascript:openPopUpSIFTHelp()" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('help','','control?view=view/images/es/nav_ft_help-over.gif',1)"><img src="control?view=view/images/es/nav_ft_help.gif" alt="Ayuda" name="help" border="0"></a></div>


        <div id="version">Bienvenido, ccal001 | miércoles 15 de enero de 2020 7:58:03</div> 

        <div id="logout">
            <img src="control?view=view/images/icon_logout.gif" alt="Terminar Sesion"><a href="javascript:CloseWindow('login/logout?logouttoken=-2263819166038691904');">Terminar Sesion</a>
        </div>
<!-- END HEADER -->

    <!-- START CONTENT -->
    <div id="content" style="display: none;">              

        <div class="refresh"><a href="control?view=view/filetransfer/thin/fileList.jsp" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('refresh','','control?view=view/images/es/btn_refresh-roll.gif',1)"><img src="control?view=view/images/es/btn_refresh.gif" alt="Refresh" name="refresh" width="70" height="17" border="0"></a></div>
        <h2>Transferencias</h2>

    <p><img src="control?view=view/images/red_folder.gif">&nbsp;-&nbsp;Es necesario seleccionar los archivos/directorios antes de que la transferencia pueda ser ejecutada.</p>
    <p><img src="control?view=view/images/green_folder.gif">&nbsp;-&nbsp;Por defecto todos los archivos serán descargados.</p>

    <div id="tc_table">  

        <table>
              <tbody><tr class="header">
                <td class="hidecolumn">Descripción</td>
                <td width="375">Nombre del archivo Local</td>
                <td width="98">&nbsp;</td>
              </tr>


              <tr class="row0">


                  <form name="file0"></form>

                  <td class="hidecolumn">Archivos de Captura</td>
                  <td nowrap="">

                                **<button type="button" onclick="javascript:multiFileBrowse("FileBrowseApplet0";, &quot;375&quot;, &quot;25&quot;, &quot;clsid:8AD9C840-044E-11D1-B3E9-00805F499D93&quot;, &quot;, &quot;control?view=view/filetransfer/thin/FileBrowseApplet_0.0.0.1.jar,control?view=view/filetransfer/thin/mlproperties.jar&quot;, &quot;application/x-java-applet;version=1.6.0&quot;, &quot;RECEIVE&quot;, &quot;c%3A%5C*&quot;, &quot;passed By filelistArray&quot;, &quot;Archivos+de+Captura&quot;);">
                                <img src="view/images/green_folder.gif"> Examinar
                                </button>**

-->


我的代码和我所做的测试

$ie = new-object -com "InternetExplorer.Application" $ie.visible = $true maxIE $ie

$username="xxxxxxx"

$password=Get-Content -Path D:\pass\PasswordPosnet.txt

$ie.Navigate("siteweb") $HomePage = $ie.document

While ($ie.Busy -eq $true) {Start-Sleep -Seconds 2;}

$usernamefield = $ie.document.getElementByID('userid') $usernamefield.value = "$username"

$passwordfield = $ie.document.getElementByID('password') $passwordfield.value = "$password"

$Link = $ie.document.getElementByID('button') $Link.click()

开始-睡眠-秒 2

测试 1

$link = @($ie.Document.getElementsByTagName('a')) | Where-Object {$_.innerText -eq 'Examiner'} $link.click()

测试 2

$ie.document.IHTMLDocument3_getElementsByTagName("button") | ForEach-Object { $_.Click() }

测试 3

$link=$ie.Document.getElementsByTagName("button") | where-object {$_.type -eq“提交”} $link.click()

测试 4

$link =$ie.Document.getElementsByTagName("input") | Where-Object{$.type -eq 'button' -and $.value -eq 'FileBrowseApplet0'} $link.Click()


区分这个按钮的方法是这样的:“FileBrowseApplet0”

【问题讨论】:

  • 你有没有尝试过?请使用tour 并阅读How to Ask。 Stack Overflow 不是免费的脚本编写服务。预计您自己的研究和代码尝试。编辑问题以将您的代码包含在 Minimal, Complete, and Verifiable 示例中。
  • 您的按钮看起来有内部文本“审查员”。您可以尝试使用此链接中的代码进行测试。 textuploader.com/16d4j 告诉我们您的测试结果。
  • 您好,感谢您的回复。试试你告诉我的,但没有用。问题是该页面包含 3 个 EXAMINE 按钮,我必须单独使用所有 3 个按钮。我留下所有的 HTML 代码。
  • 我建议你循环浏览网页上的所有按钮并检查它的innerHTML。如果匹配,请尝试单击该按钮。这样,您可以单独单击所有 3 个按钮。参考:textuploader.com/161k6

标签: javascript powershell internet-explorer onclick


【解决方案1】:

这应该会引导您走向正确的道路(PowerShell):

$oIE         = new-object -com internetexplorer.application
$oIE.visible = $true

[void]$oIE.navigate2("https://<yourUrl>")
Do {
    sleep -seconds 1
} while ($oIE.busy)


$control = $oIE.document.IHTMLDocument3_getElementsByTagName('BUTTON') | ? { $_.IHTMLElement_innerHTML -like <patternToFind> }

[void]$control.click()

while ($oIE.busy) {
    sleep -seconds 1
}

【讨论】:

  • 您好,感谢您的回答。你的建议没有奏效。我刚刚更新了 HTML 代码。
  • 脚本在这里工作。所以你必须调试你身边的问题。我会先检查 $oIE.document.IHTMLDocument3_getElementsByTagName('BUTTON') 的返回值是什么,看看有哪些属性可用。检查起来比较简单。
猜你喜欢
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多