gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 11:33:53 25 4
gpt4 key购买 nike

我用 python 编写了一个 GUI 自动化脚本,用于打开网络浏览器,在浏览器中进行一些测试,然后关闭浏览器。它在经过数十万次迭代的循环中这样做。

我遇到过程序挂起的问题,我无法打开任何浏览器实例,有时甚至会打开多达 20 个实例。我想创建一个错误检查以确保一次只打开一个浏览器实例(如果打开了很多实例,则完全终止浏览器并重新启动迭代和/或确保在通过一个浏览器实例之前打开一个浏览器实例循环的迭代)。

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

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

更新:

我知道我可以按名称搜索 Windows 进程,但我如何将其放入像这样的 bool 表达式中

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

第二次更新:

我有以下可以用 Ruby 编写的代码:

    if system('tasklist | find "firefox.exe"') == true
a = 1
elsif system('tasklist | find "firefox.exe"') == false
a = 0
end

我如何在 Python 中完成此操作?

我要找的答案:

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

最佳答案

我一直在做类似的事情

我想你可能需要 pywinauto

from pywinauto.findwindows import find_windows

find_windows(best_match='YOURWINDOWNAMEHERE')

如果 YOURWINDOWNAMEHERE 未打开,这将引发异常

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

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

例子:.

>>>find_windows(best_match="calculator")    #this gets an exception

# ::I manually open Calculator now ::

>>>find_windows(best_match="calculator")

[12345] #orwhatever process number it gets

关于python - 如何以编程方式检查 Windows 机器上打开的浏览器实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16428588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com