打开10分钟后自动关闭Firefox(以防止宏冻结)

时间:2019-05-11 20:27:07

标签: batch-file firefox selenium-ide imacros kantu

我将Firefox 60 Quantum与带有Windows 7 32位的Kantu(一个Selenium Ide项目)一起使用,并且我需要一种在闲置了10分钟的firefox之后关闭的解决方案。

我一个又一个地运行着更多的firefox宏,但是有时宏可以停滞不前,并且Firefox保持打开状态,并且不执行宏命令。

在这种情况下,我需要强制关闭Firefox。

我已经想到了taskkill的解决方案,但是它给我带来了一个问题,因为它仅在从10分钟开始打开Firefox进程时才运行,否则运行正常工作的宏时也会关闭Firefox。 / p>

示例我一个接一个地运行4个宏。

  • 宏1在完成工作后运行7分钟,它将关闭Firefox并运行宏2

  • 宏2在完成工作后运行6分钟,它将关闭Firefox并运行宏3

  • 宏3在完成工作后运行9分钟,它将关闭Firefox并运行宏4

  • Macro 4运行了10分钟,卡住/冻结了,在打开Firefox 10分钟后冻结了,我需要强行关闭该宏,因为它无法继续执行后续命令。

如果我在打开firefox时使用taskkill,则可以在正常执行的宏过程中关闭firefox,而不会卡死宏(前3个宏工作17分钟,只有4个宏工作10分钟,其余冻结)。

在任务管理器中存在一个可以在执行任务时使用taskkill的解决方案(例如,如果从10分钟开始运行,firefox.exe将被关闭,或者类似的解决方案?)

我搜索了插件,以在10分钟后关闭Firefox中的所有标签页,但在我的情况下却无法正常工作,因为仅关闭没有焦点的标签页且宏被卡住无法正常工作,而是具有焦点。

2 个答案:

答案 0 :(得分:1)

我发现这是一种解决方案,可以控制进程打开了多长时间,如果进程已打开了几分钟则将其关闭,而不会关闭较短时间内打开的进程。

https://stackoverflow.com/a/14390012/11268278

答案 1 :(得分:0)

我不确定我是否完全理解这个问题,但是您看过kantu command line吗?

您可以使用它编写一个脚本,等待10分钟,然后杀死浏览器和/或Kantu。

您可以在kantu github repo中找到一些用于各种语言的代码示例。

这些脚本全部check for the log file to be written within a certain timeout value。如果未显示日志文件,则脚本将杀死kantu。听起来这就是您所需要的:

#Macro done - or timeout exceeded:
if ($status_runtime -lt $timeout_seconds)
{
    #Read FIRST line of log file, which contains the status of the last run
    $status_text = Get-Content $path_log -First 1


    #Check if macro completed OK or not
    $status_int = -1     
    If ($status_text -contains "Status=OK") {$status_int = 1}

}
else
{
    $status_text =  "Macro did not complete within the time given:" + $timeout_seconds
    $status_int = -2
    Cleanup => Kill Chrome instance 
    taskkill /F /IM chrome.exe /T   
}