![](/img/trans.png)
[英]Selenium Python: 'Close' button on pop-up window not interactable
[英]How to close a pop-up window from other application with python script
我正在自动进行Aspen Plus模拟以及使用Python对结果进行后处理。 为了进行放大分析,敏感性研究和解决优化问题; 我必须重复几次运行aspen模拟。
这样,我使用win32com.client对其进行管理。 它运作良好,但有时aspen显示一个弹出窗口,告知所有许可证正在使用中,从而中断程序流:
如果我手动关闭它,程序将继续工作。 因此,我正在考虑编写一个脚本来自动执行此操作,但是我不知道如何执行此操作。
我试图杀死进程,终止进程,发送信号。 但是没有任何效果,因为杀死AspenPlus.exe进程会停止该程序。
这是一些示例powershell代码,您可以使用它们来检查Aspen进程是否正在运行以及是否打开了窗口,然后通过sendKey函数发送适当的密钥来关闭它
$isAspenOpen = Get-Process Aspen*
if($isAspenOpen = $null){
# Aspen is already closed run code here:
}
else {
$isAspenOpen = Get-Process AspenPlus*
# while loop makes sure all Aspen windows are closed before moving on to other code:
while($isAspenOpen -ne $null){
Get-Process aspen* | ForEach-Object {$_.CloseMainWindow() | Out-Null }
sleep 5
If(($isAspenOpen = Get-Process aspen*) -ne $null){
Write-Host "Aspen is Open.......Closing Aspen"
$wshell = new-object -com wscript.shell
$wshell.AppActivate("Aspen Plus")
$wshell.Sendkeys("%(Esc)")
$isAspenOpen = Get-Process Aspen*
}
}
#Aspen has been closed run code here:
}
感谢Psychon解决方案! 有用!! 我从python使用它,如下所示:
import win32com.client as win32
shell = win32.Dispatch("WScript.Shell")
shell.AppActivate("All licenses are in use")
shell.Sendkeys("%{F4}", 0)
现在,我只需要改进代码即可自动执行任务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.