![](/img/trans.png)
[英]How do I programmatically check to see if a python package is installed on a remote Linux machine?
[英]How do I programmatically check for open browser instances on a Windows machine?
我在python中編寫了一個GUI自動化腳本,用於打開Web瀏覽器,在瀏覽器中進行一些測試,然后關閉瀏覽器。 它在循環中通過數十萬次迭代完成。
我遇到了程序掛起的問題,我沒有打開任何瀏覽器實例,有時甚至打開20個實例。 我想創建一個錯誤檢查,以確保一次只打開一個瀏覽器實例(完全終止瀏覽器並重新啟動迭代,如果有許多實例打開和/或確保瀏覽器實例打開后再通過迭代循環)。
瀏覽器的PID顯然會在循環的每次迭代中發生變化,據我所知,沒有辦法分配PID。 我想到的另一個解決方案是對終端進行系統調用,並以某種方式利用tasklist和taskkill命令,但仍然沒有找到一種方法來做我想要的。
任何建議將不勝感激!
更新:
我知道我可以按名稱搜索Windows進程,但是如何將它放入一個布爾表達式中
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
我使用taskill來使用Java中的窗口標題殺死Android記錄器(logcat),如下所示:
taskkill /F /FI "WINDOWTITLE eq logcat"
和使用文件名的模擬器:
taskkill /F /IM emulator-arm.exe
應該適合你的情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.