подскажите, пожалуйста, я хочу использовать несколько экземпляров PhantomJSDriver:
PhantomJSDriver[] Driver = new PhantomJSDriver[memberscount];
for (int i = 0; i < memberscount; i++)
{
driverService[i] = PhantomJSDriverService.CreateDefaultService();
driverService[i].HideCommandPromptWindow = true;
driverService[i].LoadImages = false;
driverService[i].ProxyType = "http";
driverService[i].Proxy = proxy[i];
options[i] = new PhantomJSOptions();
options[i].AddAdditionalCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36");
Driver[i] = new PhantomJSDriver(driverService[i], options[i]);
Driver[i].Manage().Window.Size = new Size(1920, 1080);
Driver[i].ExecutePhantomJS(script);
}
Каждый экземпляр работает хорошо, пока я не попытаюсь открыть новое окно / вкладку и открыть ссылку в нем:
IJavaScriptExecutor jscript = Driver[count] as IJavaScriptExecutor;
jscript.ExecuteScript("window.open('', '_blank');");
Driver[i].SwitchTo().Window(Driver[i].WindowHandles[1]);
Driver[i].Navigate().GoToUrl(url);
В этот момент Второй и все последующие экземпляры Драйвер начинают загружать ЦП на 10%, и объем оперативной памяти растет экспоненциально, пока phantomjs.ex eпроцесс закрывается сам (без ошибок)
Но первый экземпляр PhantomJSDriver работает стабильно, даже с окнами, проблемы начинаются, только если я открываю окно со вторым и другими драйверами.
Попыталсяоткройте как это:
Driver.ExecuteJavaScript("window.open('" + url + "', '_blank');");
И есть та же проблема ... Как я могу найти причину?Спасибо!
Обновление :
Обнаружено, что это также происходит после создания второго дополнительного окна (третьего) и перехода по ссылке:
url = "...1";
Driver[i].ExecuteScript("window.open('', '_blank');");
Driver[i].SwitchTo().Window(Driver[i].WindowHandles[1]);
Driver[i].Navigate().GoToUrl(url);
url = "...2";
Driver[i].ExecuteScript("window.open('', '_blank');");
Driver[i].SwitchTo().Window(Driver[i].WindowHandles[2]);
Driver[i].Navigate().GoToUrl(url); // After that, process crashing
С переменной CurrentWindowHandle все в порядке, третье окно создано, но при взаимодействии с ним процесс завершается.