如何以编程方式检查Windows计算机上的打开的浏览器实例?

2024-09-29 10:27:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个GUI自动化脚本,它打开一个web浏览器,在浏览器中执行一些测试,然后关闭浏览器。它是在一个循环中完成的,经过数十万次迭代。在

我遇到过这样的问题:程序会挂起,我无法打开浏览器实例,或者有时最多打开20个实例。 我想创建一个错误检查,以确保一次只打开一个浏览器实例(如果有许多实例打开,则完全关闭浏览器并重新启动迭代,和/或在循环迭代之前确保浏览器实例处于打开状态)。在

浏览器的PID在循环的每次迭代中都会发生明显的变化,据我所知,没有办法分配PID。 我想到的另一个解决方案是对终端进行系统调用,并以某种方式利用tasklist和taskkill命令,但仍然没有找到一种方法来做我想要的。在

如有任何建议,我们将不胜感激!在

更新:

我知道我可以按名称搜索windows进程,但我如何将其放入一个布尔表达式中

if tasklist contains firefox.exe
    taskkill firefox.exe
else
    open firefox

第二次更新:

我可以用Ruby编写以下代码,这很有用:

^{pr2}$

如何在Python中实现这一点?在

我正在寻找的答案:

b = (str(os.system('tasklist | find "firefox.exe"')))
if b == '1':
    b = 'false'
elif b == '0':
    b = 'true'
print b

Tags: 实例程序脚本webif状态错误浏览器
2条回答

我也做过类似的事情

我想你可能想要皮温汽车

from pywinauto.findwindows import find_windows

find_windows(best_match='YOURWINDOWNAMEHERE')

如果你的windownamehere没有打开,这将引发一个异常

编辑:实际上,对于firefox或chrome,只有当“YOURWINDOWNAMEHERE”是你所在的页面时才有效,例如这个页面是“python—我如何编程…”

如果它找到它,它将返回一个int,据我所知,这个int应该能够引用窗口。在

在例子:。在

^{pr2}$

我用Java的loglogger(logloggill)在这个窗口中使用了javalogger来杀死它:

taskkill /F /FI "WINDOWTITLE eq logcat"

以及使用文件名的模拟器:

^{pr2}$

在你的案子里应该有用。在

相关问题 更多 >