Вы можете легко изменить Firefox, чтобы он не отображался в доке.
В Finder щелкните правой кнопкой мыши значок приложения Firefox и выберите «Показать содержимое пакета». Затем откройте папку «Содержание» и отредактируйте Info.plist
с помощью редактора списка свойств (поставляется с XCode) или BBEdit/TextWrangler. В начале файла добавьте ключ LSUIElement
со значением <true/>
. В BBEdit/TextWrangler начало файла будет выглядеть следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LSUIElement</key>
<true/>
В списке свойств редактора, щелкните правой кнопкой мыши любую клавишу и выберите Показать Сырые ключи/значения, а затем щелкните правой кнопкой мыши запись верхнего уровня (» Information Property List ") и выберите Add Row. Задайте значение LSUIelement
для значения этого элемента и отметьте этот флажок.
Я предложил использовать Редактор списка свойств или BBEdit/TextWrangler вместо какого-либо другого редактора, потому что большинство файлов .plist
находятся в двоичном формате тезисов, и эти инструменты могут обрабатывать двоичные файлы .plist
. Другие текстовые редакторы просто покажут тарабарщину. Тем не менее, я должен отметить, что вы можете преобразовать файл Info.plist
в текст с помощью утилиты строки plutil
команды и т.д .:
plutil -convert xml1 /Applications/Firefox.app/Contents/Info.plist
Затем вы можете редактировать его в любом текстовом редакторе, вы хотите. Вам даже не нужно возвращать его обратно в двоичный файл; текстовый формат на самом деле будет работать нормально.
В любом случае сохраните файл info.plist и закройте и перезапустите Firefox. Значок (и строка меню) теперь исчезнет. (Нет, невозможно отобразить панель меню, но скрыть значок, но я не думаю, что это будет беспокоить Selenium.)
На ваш второй вопрос: технически можно запустить приложение, не придавая ему фокуса. Например, этот Applescript запускает Firefox и получает список окон, но не отправляет сообщение activate
, которое выводит его на передний план.
tell application "Firefox" to get windows
Вы можете отправить любое сообщение; часть get windows
- это просто ничего не для наших целей. Дело в том, что вам нужно отправить сообщение , чтобы запустить его (AppleScript знает, что вы не можете отправлять сообщения в приложения, которые не запущены, поэтому он запускает его для вас, но в фоновом режиме).
Теперь я не уверен, как Selenium запускает браузеры, но может быть возможно изменить его, чтобы запустить Firefox с помощью инструмента командной строки osascript
или что-то в этом роде и использовать приведенную выше команду.
osascript -e 'tell application "Firefox" to get windows'
Я оставлю вас, чтобы положить эти кусочки вместе ...
Благодарим за внимание! Я по-прежнему использую Firefox также в качестве основного браузера, поэтому я бы предпочел не изменять его напрямую. Также обновляется Firefox и так далее. Также существует исполняемый экземпляр Firefox, который не совпадает с экземпляром Selenium, хотя они используют один и тот же двоичный файл. –
Просто сделайте копию Firefox. – kindall