我正在使用WATIR來控制瀏覽器,但有一個頁面從未完全加載所有的東西。 60秒超時後,WATIR給我錯誤,我可以繼續寫命令,但如果我試圖用WATIR關閉瀏覽器,那麼所有功能都會被阻塞。Ruby:殺死Chrome進程
如果我手動關閉瀏覽器,一切似乎都保持不變,所以我正在尋找選項來查找鉻進程ID,PID並使用ruby殺死進程。
下面是代碼示例,我發現:
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。 最後一個 - NoMethodError:未定義方法`pid'爲零:NilClass
從我的研究中,我認爲我需要獲得PID。 然後我可以關閉進程。
任何提示?我正在使用Windows! 到目前爲止,似乎沒有在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命令從紅寶石?
你正在運行哪個操作系統? – Yossi 2012-03-03 21:20:30
我在窗戶上! – user1237898 2012-03-03 21:21:00
Chrome卡住了,因爲在鎖定時無法手動關閉它?如果您對開發團隊有任何影響,請讓他們解決問題。 – 2012-03-05 17:43:02