Чистый способ программного управления Safari на iPhone? - PullRequest
0 голосов
/ 07 сентября 2010

Название говорит почти все.У меня есть недолговечные серверные процессы, которые обслуживают набор веб-тестов javascript с опционально сопровождающими внутренними компонентами для интеграционных тестов (см. здесь , как это делается).Я ищу лучший способ направить Safari на эмуляторе iPhone по указанному URL.

Больше, возможно, дополнительный фон:

Вплоть до iOS SDK 4.0 мне удалось управлять XCode с помощьюAppleScript для запуска специально подготовленного PhoneGap проекта следующим образом:

  1. AppleScript (называемый «AS») запускает XCode (называемый «XC»)
  2. AS инструктирует XC загрузить ранее настроенный проект PhoneGap.
  3. AS инструктирует XC запустить проект PhonePap.
  4. Проект PhoneGap перенаправит на сервер, обслуживающий набор тестов, изапускается набор тестов.

В iOS 4.0 SDK это работает только в первом раунде, в следующий раз, когда исполнитель набора тестов пытается заставить XC выполнить вышеуказанную процедуру, он не может запросить остановку предыдущего запуска,И я не могу на всю жизнь найти способ остановить сеанс отладки с AS [1], поэтому я могу запустить только один набор тестов без ручного вмешательства, ведь для нас это в значительной степени ограничитель показа, так как мы полагаемся на многоена ночных тестовых запусках.

Теперь, что я действительно хочу сделать, это просто запустить эмулятор iPhone, а затем запустить Safari на эмуляторе с возможностью отправки произвольного URL-адреса эмулируемомуSafari.

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

[1] Я бы также принял способ сделать это как правильный ответ.

Ответы [ 3 ]

1 голос
/ 02 октября 2015

Теперь это возможно:

xcrun simctl openurl booted "https://google.com"

https://apple.stackexchange.com/a/198798/144271

1 голос
/ 07 сентября 2010

У меня для вас совершенно другое решение.

Написать пользовательское приложение для iPhone, которое просто содержит веб-представление. Он будет вести себя почти так же, как MobileSafari. Затем вставьте в приложение небольшой веб-сервер.

Затем вы можете управлять своим приложением, вызывая определенные URL-адреса на этом сервере.

Это очень простое приложение. Сборка займет у вас 30 минут.

Это легко интегрируется в Xcode или больший (Apple) скрипт. Вы можете использовать такие команды, как curl, чтобы открывать URL.

0 голосов
/ 22 ноября 2010

Post scriptum: как это было решено в итоге.

Через некоторое время после того, как я задал этот вопрос, пользователь на github добавил комментарий в выпуск 3 , что для правильной работы iphonesim необходимо указать путь абсолютный в приложение для запуска. Итак, теперь у нас есть готовый проект PhoneGap, в котором скрипт изменяет содержимое каталога www внутри build/Debug-iphonesimulator/PhoneGap.app. Абсолютный путь к этому каталогу затем отправляется на iphonesim, начиная проект, который теперь указывает на правильный сервер. Нет AppleScript и XCode (за исключением начальной сборки). Набор тестов теперь занимает 1/7 от времени, необходимого для запуска ранее.

...