Скрытие командной строки при использовании селена с phantomjs (python 3.6) [duplicate]

Самое простое решение, но не на 100% точное

  $ (': hover'). last (). offset ()  

Результат: {top: 148, left: 62.5} Результат зависит от размера ближайшего элемента и возвращает undefined , когда пользователь переключил вкладку

13
задан Sanket Shah 16 July 2012 в 10:32
поделиться

3 ответа

Да, вам нужно изменить исходный код в WebDriver \ DriverService.cs в Start(); add:

this.driverServiceProcess.StartInfo.CreateNoWindow = true;
6
ответ дан Will Vousden 16 August 2018 в 06:41
поделиться
  • 1
    Остерегайтесь делать это без использования полного процесса сборки для проекта Selenium. Простое создание в Visual Studio не даст вам эквивалентной сборки, сгенерированной скриптом сборки проекта Selenium. – JimEvans 1 May 2013 в 23:40

Модификация исходного кода в WebDriver \ DriverService.cs для этого не требуется в последнем WebDriver. Вам просто нужно создать экземпляр ChromeDriverService и установить HideCommandPromptWindow в true, а затем создать экземпляр ChromeDriver этой службой и ChromeOptions. Я приводил пример кода C # ниже

var chromeDriverService = ChromeDriverService.CreateDefaultService();
chromeDriverService.HideCommandPromptWindow = true;
return new ChromeDriver(chromeDriverService,  new ChromeOptions());
36
ответ дан DebanjanB 16 August 2018 в 06:41
поделиться
  • 1
    Вы также можете добавить путь к двоичному файлу драйвера ChromeDriverService :: CreareDefaultService (pathToBinary); – kirsche40 18 June 2015 в 15:28

Нет, невозможно скрыть консольное окно файла chromedriver.exe в привязках .NET, не изменяя исходный код привязки. Это рассматривается как функция привязок, так как очень легко увидеть, когда ваш код неправильно очистил ресурсы ChromeDriver, так как окно консоли остается открытым. В случае некоторых других языков, если ваш код неправильно очищает экземпляр ChromeDriver, вызывая метод quit() в объекте WebDriver, вы можете завершить процесс zombie chromedriver.exe, запущенный на вашем компьютере.

12
ответ дан JimEvans 16 August 2018 в 06:41
поделиться
  • 1
    Ничего себе, серьезно, нисходящие? Просто потому, что ответ не тот, который вы хотите услышать, не делает его неправильным или плохим ответом. Я могу гарантировать, что этот ответ абсолютно верен во всех отношениях, включая предположение о намерениях авторов (поскольку я автор). – JimEvans 1 May 2013 в 23:34
  • 2
    Привет @JimEvans - У меня на самом деле проблема с обратным адресом на одном из моих компьютеров. Этот компьютер скрывает все окна консоли IEDriverServer и ChromeDriver, и я не знаю почему. Код не имеет ни одного из этих конкретных параметров, и окна видны, когда код запускается на других компьютерах. Любое понимание? Благодаря! – AngieM 17 October 2016 в 13:19
  • 3
    @AngieM Используете ли вы привязки языка .NET? Если нет, то информация в этом вопросе не относится к вам. Другие языки (Python, Ruby, Java) могут не дать вам никакого контроля над тем, появится ли отдельное окно командной строки. – JimEvans 17 October 2016 в 13:25
  • 4
    Да, я использую C #. Я не хочу скрывать окна консоли. По какой-то причине они просто скрыты на этом конкретном компьютере (Windows 8.1 и VS2015). – AngieM 17 October 2016 в 13:40
  • 5
    Вы видите процессы? Он работает как другой пользователь, чем тот, который в настоящее время входит в систему? – Dan Csharpster 23 June 2017 в 15:19
Другие вопросы по тегам:

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