私はブラウザを制御するためにWATIRを使用していますが、すべてがスタックしているページはありません。 60秒のタイムアウト後、WATIRは私にエラーを与え、私はコマンドを書き続けますが、WATIRを使ってブラウザを閉じると、すべての機能が停止します。Ruby:Chromeのプロセスを終了
私がブラウザを手動で閉じると、すべてがうまくいくように見えるので、私はchromeプロセスID、PIDを見つけて、ルビを使ってプロセスを終了するオプションを探しています。
IRB
require "watir-webdriver"
proxy = "78.159.102.86:49295"
browser = Watir::Browser.new :chrome, :switches => ['--proxy-server=' + proxy]
bridge = browser.instance_variable_get(:@bridge)
launcher = bridge.instance_variable_get(:@launcher)
binary = launcher.instance_variable_get(:@binary)
process = binary.instance_variable_get(:@process)
process.pid
すべてこの方法は私にNILを与える:ここで
は、私が見つけたコードサンプルです。 最後の1つ - NoMethodError:未定義メソッド `pid 'for nil:NilClass
私の研究から、私はPIDを取得する必要があると思います。 それから私はプロセスを閉じることができます。
ヒント?私は窓を使用しています! これまでのところ、Rubyに名前でプロセスを殺す方法はありません。
編集:
私は、Windowsのコマンドラインからどのような作品が見つかりました:
taskkill /im Firefox.exe /f /t >nul 2>&1
しかし、私はルビーの上だので、それは私にエラーを与える:
SyntaxError: (irb):1: unknown regexp option - f (irb):1: syntax error, unexpected tINTEGER, expecting keyword_do or '{' or '(' taskkill /im Firefox.exe /f /t >nul 2>&1
cmdのコマンドを実行する方法ルビーから?
実行しているOSはどれですか? – Yossi
私は窓にいる! – user1237898
ロックがかかっているようにクロムがつまっていますので、手動で閉じることはできません。開発チームに影響がある場合は、問題を解決するように依頼してください。 –