【问题标题】:Automate the Onclick screen popup自动弹出 Onclick 屏幕
【发布时间】:2019-09-02 22:35:25
【问题描述】:

使用 IE 我已经自动化了一个网站,但现在一切都结束了,我遇到了一个表单,它会抛出一个对话框“来自网页的消息”Ok or Cancel。

Dialogue Box Image

浏览器的 HTML 检查:

<div class="formbuttons">

<input name="Deactivate" class="formsubmit deactivate" id="ButtonDeactivate" 
style="width: 160px;" onclick="return confirm('Are you sure you want to 
deactivate the feature?');WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(
&quot;ctl00$ContentPlaceBody$ButtonDeactivate&quot;,&quot;&quot;, true, &quot;
&quot;, &quot;&quot;, false, false))" type="submit" value="Deactivate">

</div>

我尝试过的方法:

1.通过从 html 中删除 onclick 但它并没有帮助虽然正则表达式实际上正在删除它

    [String] $body = "onclick=.*feature....."
    $ie.Document.body.innerHTML -replace "$body", ""
    $deactivate=$ie.document.getElementById("ButtonDeactivate")
    $deactivate.Click();

2。通过添加此处提到的一些语句 (Automating IE confirmation prompt with Powershell)

    $ie.document.forms | Select -First 1 | % { $_.submit() } 

我唯一的动机是点击确定弹出按钮。

提前感谢您的帮助。

【问题讨论】:

    标签: powershell internet-explorer onclick


    【解决方案1】:

    尝试查询项目的 Outer HTML 属性以获取 HTML 代码。那么您所要做的就是将“确认(*)”替换为“”。之后,您可以将其设置回脚本中,然后单击它。

    $Script = $IE.document.getElementsByTagName("script").item(#----------Whatever Number it is)
    $Script.outerHTML = $Script.outerHTML | % {if ($_ -like "return confirm*") {"return true;"} else {$_}}
    $autotransbtn.Click()
    

    参考:

    (1)Automating JavaScript confirmation prompt in IE using PowerShell

    (2)internet explorer - Automating IE confirmation prompt with Powershell

    【讨论】:

    • 嗨,Deepak,感谢您的快速回复。这里的“脚本”和项目是什么?我对此很陌生。我尝试通过脚本标签使用它,但它给出了错误。
    • 它将成为您的 JS 脚本的对象。这只是一个例子。您可以尝试根据自己的需求进行修改。
    • 刚刚检查过,我的 html 与 link 不同。那里 onclick 调用一个函数,但在我的情况下它在输入标签内。 这就是我所做的,但它仍然给出提示: $Script = $ie.document.getElementById("ButtonDeactivate") $Script.outerHTML = $Script.outerHTML | % {if ($_ -like "return confirm*") {"return Ok;"} else {$_}} $Script.Click() 我返回 Ok 而不是 True,因为在我的情况下提示说 Ok 或 Cancel。如果您在这里看到问题,请告诉我。 :)
    • 也试过了,但是当我尝试打印输出时它没有替换$Script = $ie.document.getElementById("ctl00_ContentPlaceBody_ButtonDeactivate") $tobereplaced = "confirm(*)" $Script.outerHTML = $Script.outerHTML | % {$_.replace("$tobereplaced","")} $scriptout = $Script.outerHTML Write-Host "$scriptout"
    • 在确定/取消提示之前收到的输出是 - &lt;input name="Deactivate" class="formsubmit deactivate" id="ButtonDeactivate" style="width: 160px;" onclick="return confirm('Are you sure you want to deac tivate the feature?');" type="submit" value="Deactivate"&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多