Web ブラウザーを開き、ブラウザーでいくつかのテストを実行してから、ブラウザーを閉じる GUI 自動化スクリプトを Python で作成しました。これは、数十万回の反復を繰り返すループで行われます。
プログラムがハングアップし、ブラウザ インスタンスが開かないか、場合によっては最大 20 個のインスタンスが開かれるという問題に遭遇しました。一度に 1 つのブラウザー インスタンスしか開いていないことを確認するエラー チェックを作成したいと考えています (多数のインスタンスが開いている場合は、ブラウザーを完全に強制終了し、反復を再開するか、ブラウザー インスタンスが開いていることを確認してから、ループの反復)。
ブラウザーの PID は、ループの反復ごとに明らかに変化します。私の知る限り、PID を割り当てる方法はありません。私が考えた別の解決策は、ターミナルにシステム コールを作成し、どうにかして tasklist および taskkill コマンドを利用することですが、私がやりたいことを行う方法はまだわかりません。
どんな提案でも大歓迎です!
アップデート:
Windowsプロセスを名前で検索できることは理解していますが、それを次のようなブール式にどのように入れるのですか
if tasklist contains firefox.exe
taskkill firefox.exe
else
open firefox
2 回目の更新:
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