Я использую WATIR для управления браузером, но есть страница, которая никогда не загружает все, что застряло.После 60-секундного тайм-аута WATIR выдает мне ошибку, и я могу продолжать писать команды, но если я пытаюсь закрыть браузер с WATIR в встроенных функциях, все застревает.
Если я закрываю браузер вручную, кажется, что все идет нормально, поэтому я ищу вариант найти идентификатор процесса Chrome, 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 'для nil: NilClass
Из моего исследования я думаю, что мне нужно получить PID.Тогда я могу закрыть процесс.
Есть советы?Я использую Windows!Пока что кажется, что в Ruby нет встроенных методов для уничтожения процесса по имени.
edit:
Я нашел то, что работает из командной строки Windows:
taskkill /im Firefox.exe /f /t >nul 2>&1
Но так как я на ruby, это выдает мне ошибку:
SyntaxError: (irb): 1: неизвестная опция регулярного выражения - f (irb): 1: синтаксическая ошибка, неожиданный tINTEGER, ожидаемое ключевое слово_do или '{' или '(' taskkill / im Firefox.exe / f / t> nul2> & 1
Как выполнить команду cmd с ruby?