private void StartPhantomJs() { _status = PhantomJsStatus.WaitingToStart; _browser = new Process { StartInfo = { FileName = _settings.Executable, Arguments = "--webdriver=" + _settings.Port, RedirectStandardOutput = true, UseShellExecute = false } }; _browser.OutputDataReceived += BrowserOnOutputDataReceived; _browser.Start(); _browser.BeginOutputReadLine(); var timer = new Stopwatch(); timer.Start(); while (_status == PhantomJsStatus.WaitingToStart && timer.ElapsedMilliseconds <= MaxStartupTimeout) { Thread.Sleep(250); } timer.Stop(); if (_status == PhantomJsStatus.Running) return; throw new Exception("Could not start phantomJs"); }
private void BrowserOnOutputDataReceived(object sender, DataReceivedEventArgs dataReceivedEventArgs) { if (dataReceivedEventArgs.Data.StartsWith("Ghost Driver running on port")) _status = PhantomJsStatus.Running; }