首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式检查Windows计算机上打开的浏览器实例?

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

Stack Overflow用户
提问于 2013-05-07 21:09:36
回答 2查看 3.5K关注 0票数 2

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

我遇到了一些问题,程序会挂起,并且不会打开浏览器实例,有时甚至会打开多达20个实例。我希望创建一个错误检查,以确保一次只打开一个浏览器实例(如果有许多实例打开,并且/或在遍历循环的迭代之前确保浏览器实例是打开的,则完全关闭浏览器并重新启动迭代)。

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

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

更新:

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

代码语言:javascript
运行
复制
if tasklist contains firefox.exe
    taskkill firefox.exe
else
    open firefox

第二次更新:

我能够用Ruby编写以下代码,这是可行的:

代码语言:javascript
运行
复制
    if system('tasklist | find "firefox.exe"') == true
        a = 1
    elsif system('tasklist | find "firefox.exe"') == false
        a = 0
    end

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

我正在寻找的答案是:

代码语言:javascript
运行
复制
b = (str(os.system('tasklist | find "firefox.exe"')))
if b == '1':
    b = 'false'
elif b == '0':
    b = 'true'
print b
EN

回答 2

Stack Overflow用户

发布于 2013-05-07 22:19:58

我一直在做类似的事情

我想你可能想要

代码语言:javascript
运行
复制
from pywinauto.findwindows import find_windows

find_windows(best_match='YOURWINDOWNAMEHERE')

如果YOURWINDOWNAMEHERE未打开,则会引发异常。

编辑:实际上,对于firefox或chrome,只有当"YOURWINDOWNAMEHERE“是您所在的页面时才能工作,例如,这个页面是"python -我如何编程.”

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

例子:.

代码语言:javascript
运行
复制
>>>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
票数 2
EN

Stack Overflow用户

发布于 2013-05-07 21:15:03

我通过使用Java窗口标题来杀死Android日志程序(logcat),如下所示:

代码语言:javascript
运行
复制
taskkill /F /FI "WINDOWTITLE eq logcat"

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

代码语言:javascript
运行
复制
taskkill /F /IM emulator-arm.exe

应该在你的案子里起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16428588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档