2015-10-19 4 views
0

Я пытаюсь проверить некоторые вещи с помощью PhantomJS (v 2.0) в C# и не закрывает его должным образом, что приводит к тому, что моя машина использует 100% процессора.phantomjs не закрывает процесс

Вся программа работает нормально, за исключением части, чтобы закрыть ее.

я попытался с

driver.Dispose(); 
driver.Quit(); 
driver.Close(); 

и (все из них)

Enviroment.Exit(-1); 
Enviroment.Exit(0); 
Enviroment.Exit(1); 
return; 

, но этот процесс еще в диспетчере задач

я попытался закрыть консоль жестоко

Process.GetCurrentProcess().Kill(); 

but s до не работает.

есть сообщение, что фантом показывает мне в консоли

[INFO - 2015-10-19T09:43:58.542Z] GhostDriver - Main - running on port 62810 
[INFO - 2015-10-19T09:44:17.480Z] Session [f7138220-7645-11e5-b667-c72dd4c4644c 
] - page.settings - {"XSSAuditingEnabled":false,"javascriptCanCloseWindows":true 
,"javascriptCanOpenWindows":true,"javascriptEnabled":true,"loadImages":true,"loc 
alToRemoteUrlAccessEnabled":false,"userAgent":"Mozilla/5.0 (Windows NT 6.1; WOW6 
4) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.0.0 Safari/538.1","webSecur 
ityEnabled":true} 
[INFO - 2015-10-19T09:44:17.499Z] Session [f7138220-7645-11e5-b667-c72dd4c4644c 
] - page.customHeaders: - {} 
[INFO - 2015-10-19T09:44:17.507Z] Session [f7138220-7645-11e5-b667-c72dd4c4644c 
] - Session.negotiatedCapabilities - {"browserName":"phantomjs","version":"2.0.0 
","driverName":"ghostdriver","driverVersion":"1.2.0","platform":"windows-7-32bit 
","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"databas 
eEnabled":false,"locationContextEnabled":false,"applicationCacheEnabled":false," 
browserConnectionEnabled":false,"cssSelectorsEnabled":true,"webStorageEnabled":f 
alse,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":{"prox 
yType":"direct"}} 
[INFO - 2015-10-19T09:44:17.530Z] SessionManagerReqHand - _postNewSessionComman 
d - New Session Created: f7138220-7645-11e5-b667-c72dd4c4644c 
[INFO - 2015-10-19T09:45:27.620Z] ShutdownReqHand - _handle - About to shutdown 

кроме того, я использую селен, но я не думаю, что есть важная информация.

Любая идея?

Спасибо.

+0

К сожалению, это, по-видимому, распространенная проблема. См. [This] (https://github.com/detro/ghostdriver/issues/162) и [это] (http://stackoverflow.com/questions/25110624/how-to-properly-stop-phantomjs-execution) , –

ответ

0

Возможное решение

Я не буду отмечать его действительным, потому что это временно, но на данный момент, самый простой/быстрый способ решить эту проблему, это получить процесс и убить его вручную.

Почему не лучшее решение, потому что собирается убить ВСЕ процесс PhantomJS, в моем случае есть только один, то он действителен, но лучше блокировки сервера.

foreach (Process proc in Process.GetProcessesByName("PhantomJS")) 
{ 
    proc.Kill(); 
} 

Если кто-то знает способ получить конкретный процесс (если его несколько), то будет приветствоваться.

2

Вот как я смог решить это, используя Selenium WebDriver и PhantomJS.

var service = PhantomJSDriverService.CreateDefaultService(); 
try 
{ 
    driver = new PhantomJSDriver(service); 
    driver.Navigate().GoToUrl("http://www.google.com"); 
} 
catch (Exception ex) 
{ 
    service.Dispose(); 
} 
finally 
{ 
    service.Dispose(); 
} 
Смежные вопросы