Я озадачен этой новой ошибкой, которая начала происходить в моем существующем, работающем проекте, даже если я не вносил никаких изменений в код, чтобы это произошло (но это могло произойти из-за обновления FireFox, илик зависимости, внезапно исчезающей).После того, как это начало происходить, я добавил уловку, чтобы помочь отладить причину внезапного выхода:
var prom = new Builder()
.forBrowser('firefox')
.build()
prom.catch((e) => {
console.log(e)
})
let driver: WebDriver = await prom
По сути, когда мой код попадает в последнюю строку этого блока кода, он открывает окно FireFox., ждет около 70 секунд (должен был выполнить обещание к настоящему моменту), а затем выдает ошибку, которая приводит к перехвату и записывает его в консоль:
{ WebDriverError: newSession
at Object.throwDecodedError (\path\to\node_modules\selenium-webdriver\lib\error.js:550:15)
at parseHttpResponse (\path\to\node_modules\selenium-webdriver\lib\http.js:542:13)
at Executor.execute (\path\to\node_modules\selenium-webdriver\lib\http.js:468:26)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
name: 'WebDriverError',
remoteStacktrace: 'WebDriverError@chrome://marionette/content/error.js:178:5\nUnknownCommandError@chrome://marionette/content/error.js:472:5\ndespatch@chrome://marionette/content/server.js:290:13\nexecute@chrome://marionette/content/server.js:271:11\nonPacket/<@chrome://marionette/content/server.js:246:15\nonPacket@chrome://marionette/content/server.js:245:8\n_onJSONObjectReady/<@chrome://marionette/content/transport.js:490:9\n' }
Забавно, что при проверке WebDriverErrorобъект, использующий Visual Studio, говорит, что у него есть свойство сообщения "newSession", которое по какой-то причине не регистрируется на консоли (или не преобразуется в строку, когда я пытаюсь это сделать).
В любом случае, ошибка плохо сконструированапотому что "newSession" не сообщает мне достаточно информации, чтобы отследить, что идет не так.
Может ли кто-нибудь помочь мне определить, что ждет ~ 70 секунд?
ОБНОВЛЕНИЕ : я определил веб-запрос, на котором он ожидает (от POST до http://localhost:51290/session
, где порт меняется при каждом запуске).Именно этот запрос истекает через 70 секунд.Я могу продублировать этот тайм-аут во внешнем приложении (например, SoapUI), отправив {}
на URL-адрес (который также открывает окно Firefox).Однако, если я установлю тайм-аут в SoapUI на что-то огромное, ответ JSON, конечно, будет:
{"value": {
"error": "unknown error",
"message": "newSession",
"stacktrace": "WebDriverError@chrome://marionette/content/error.js:178:5\nUnknownCommandError@chrome://marionette/content/error.js:472:5\ndespatch@chrome://marionette/content/server.js:290:13\nexecute@chrome://marionette/content/server.js:271:11\nonPacket/<@chrome://marionette/content/server.js:246:15\nonPacket@chrome://marionette/content/server.js:245:8\n_onJSONObjectReady/<@chrome://marionette/content/transport.js:490:9\n"
}}
Я думаю, что мне нужно будет отладить сторону Firefox, может кто-нибудь заставить меня начатьна что?