В настоящее время я разрабатываю приложение для iOS. Одна из функций приложения требует некоторой автоматизации WebKit. Я хочу сделать что-то похожее на то, что делает селен; Я хочу ввести текст в текстовое поле, используя его идентификатор или Xpath, а затем нажать кнопку, используя его идентификатор или Xpath.
Пример: ввод текста в строку поиска google на google.com, а затем программный щелчок по поиску.
Я сделал это в селене (Java). Хотя я ищу способ сделать это на ios (используя swift). Могу ли я сделать это изначально? Или есть кокопода, которую я могу использовать для этого? Если нет, можно ли было бы использовать swift для запуска файла javascript для этого?
Мне также известно о кокоподе под названием WKZombie, он делает именно то, что мне нужно, хотя его документация довольно запутанная, и это безголовый браузер (я хочу, чтобы пользователь видел, что происходит, поэтому это не работает, хотя я может захватить HTML и отобразить его, если нет другого способа сделать это). Также я не думаю, что appium будет работать, потому что я хочу, чтобы это работало в автономном приложении.
(Кроме того, это мой первый пост, поэтому я приношу свои извинения за неправильное форматирование или что-то в этом роде)





Чтобы разместить браузер в вашем приложении, вам нужен класс WKWebView (заменяет старый UIWebView). Метод оценитьJavaScript может быть использован в WKWebView для внедрения JS в экземпляр WKWebView. Вы можете включить заполнение текстового поля, магию нажатия кнопки в JS, который вы вводите.
Вы можете общаться со страницей, загруженной в представлении WKWebView, через JavaScript:
Самый простой способ - использовать evaluateJavaScript(_, completionHandler), который позволяет вводить код, например для изменения DOM, триггерных действий и т. д.
Или вы можете внедрить пользовательский скрипт (WKUserScript) при создании веб-представления, которое может обращаться к вашему коду Swift, который требует дополнительных настроек, но также является более мощным.
Большое спасибо. Это именно то, что я искал!
Я вижу, как запустить evalJavaScript (_, ЗавершениеHandler) на одной странице, но как бы вы запустили это, чтобы автоматизировать учетную навигацию по нескольким страницам?
Скорее всего, все ваши страницы находятся в одном веб-просмотре. На основе текущего URL-адреса вы можете определить, какой скрипт внедрять.
Вы в конце концов выяснили, как автоматически перемещаться по нескольким страницам?