WebView API
Описание
IWebViewAPI предназначен для взаимодействия с WebView внутри Android-приложений в ZennoDroid. Позволяет выполнять JavaScript-код, получать информацию о соединении и управлять сертификатами.
Методы
DisableForcedRenderWebView
-
void DisableForcedRenderWebView()
Отменяет патч, применённый методомEnableForcedRenderWebView.Описание:
Восстанавливает стандартное поведение ChromiumAutoDisableAccessibilityV2, позволяя браузеру отключать дерево элементов при отсутствии программ чтения с экрана.
Пример.
var webView = instance.DroidInstance.WebView;
webView.DisableForcedRenderWebView(); // Вернуть стандартное поведение дерева элементов
EnableForcedRenderWebView
-
void EnableForcedRenderWebView()
Принудительно включает рендеринг дерева элементов (accessibility tree) в Chromium.Описание:
Обходит функцию ChromiumAutoDisableAccessibilityV2, которая автоматически отключает дерево элементов, если не обнаруживает активных программ чтения с экрана (например, TalkBack). Вызовите этот метод перед работой с WebView через Appium, если элементы не обнаруживаются.
Пример.
var webView = instance.DroidInstance.WebView;
webView.EnableForcedRenderWebView(); // Включить рендеринг дерева элементов
var html = webView.EvaluateScript("return document.body.innerHTML;");
webView.DisableForcedRenderWebView(); // Вернуть стандартное поведение
EvaluateScript
-
string EvaluateScript(string script)
Выполняет JavaScript-код внутри WebView.Параметры:
script— JavaScript-код для выполнения.
Возвращает:
Результат выполнения скрипта в виде строки.
Пример.
var webView = instance.DroidInstance.WebView;
var html = webView.EvaluateScript("return document.body.innerHTML;"); // Выполнить JavaScript в WebView
var title = webView.EvaluateScript("return document.title;");
GetAttachedWebSocketUrl
-
string GetAttachedWebSocketUrl()
Получает URL WebSocket-соединения.Возвращает:
Строку с адресом WebSocket.Описание:
Используется для отладки и анализа соединения WebView (например, для подключения DevTools).
Пример.
var webView = instance.DroidInstance.WebView;
var url = webView.GetAttachedWebSocketUrl(); // Адрес WebSocket активной страницы WebView
project.SendInfoToLog(url);
InjectSystemCertificate
-
void InjectSystemCertificate(string source)
Устанавливает системный сертификат.Параметры:
source— путь к сертификату или его содержимое.
Описание:
Позволяет добавить доверенный сертификат в систему для:- перехвата HTTPS-трафика;
- работы с прокси (Burp, Charles, Fiddler);
- обхода SSL pinning (в некоторых случаях).
Пример.
var webView = instance.DroidInstance.WebView;
webView.InjectSystemCertificate(project.Variables["cert_pem"].Value);
Настройка BurpSuite и отключение проверки сертификата с помощью модуля ZennoDroid