Запустите автономную селенную сессию с хронографом из сценария powershell [duplicate]

Давайте посмотрим на лес сначала, прежде чем смотреть на деревья.

Здесь есть много информативных ответов с большими подробностями, я не буду повторять ни одного из них. Ключ к программированию в JavaScript имеет сначала правильную ментальную модель общего исполнения.

  1. Ваша точка входа (ов) выполняется в результате события. Например, в браузер загружается тег сценария с кодом. (Соответственно, поэтому вам, возможно, придется заботиться о готовности страницы запускать ваш код, если он требует, чтобы элементы dom были сконструированы первыми и т. Д.)
  2. Ваш код выполняется до завершения, однако многие асинхронные вызовы, которые он делает, без выполнения каких-либо ваших обратных вызовов, включая запросы XHR, установку тайм-аутов, обработчиков событий dom и т. д. Каждый из этих обратных вызовов, ожидающих выполнения, будет находиться в очереди, ожидая, что их очередь будет запущена после других событий
  3. Каждый отдельный обратный вызов XHR-запроса, установленного таймаута или dom события после вызова будет завершен.

Хорошие новости заключается в том, что, если вы хорошо понимаете этот момент, вам никогда не придется беспокоиться о гоночных условиях. Прежде всего вы должны понимать, как вы хотите упорядочить свой код как по существу ответ на разные дискретные события, и как вы хотите объединить их в логическую последовательность. Вы можете использовать обещания или новые асинхронные / ожидающие более высокие уровни в качестве инструментов для этой цели, или вы можете откатывать свои собственные.

Но вы не должны использовать какие-либо тактические инструменты для решения проблемы, пока вам не понравится актуальная проблемная область. Нарисуйте карту этих зависимостей, чтобы знать, что нужно запускать, когда. Попытка ad-hoc подхода ко всем этим обратным вызовам просто не поможет вам.

4
задан GibboK 24 February 2015 в 10:04
поделиться

2 ответа

Вам понадобится использовать следующий формат для powershell:

 Start-Process java -ArgumentList '-jar', 'MyProgram.jar' `
-RedirectStandardOutput '.\console.out' -RedirectStandardError .\console.err' 

Или другой вариант, который вы можете использовать, - Start-job:

Start-Job -ScriptBlock {
  & java -jar MyProgram.jar >console.out 2>console.err
}
7
ответ дан abhijeet dhumal 26 August 2018 в 03:33
поделиться

Похоже, что -jar подбирается как аргумент Start-Process, а не передается в java.

Хотя в документации указано, что -ArgumentList - Необязательно, Я подозреваю, что не учитывает вещи типа -option.

Вероятно, вам нужно использовать:

Start-Process -FilePath java -ArgumentList ...

Например, в Powershell ISE , следующая строка вызывает помощь Java (хотя и быстро исчезает):

Start-Process -FilePath java -argumentlist -help

, но эта строка :

Start-Process -FilePath java -help

вызывает Powershell ] себя , чтобы жаловаться на -help.

0
ответ дан paxdiablo 26 August 2018 в 03:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: