Несколько автокликов в веб-просмотре; Автоматизируйте WebView в android для вставки JavaScript один за другим - PullRequest
0 голосов
/ 21 февраля 2020

До сих пор я наблюдал, что фоновые задачи, такие как следующий код, выполняются после выполнения всего main_activity.java.

Сначала я запускаю этот код.

webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl(initialTry);
webView.setWebChromeClient(new WebChromeClient() {
    public void onProgressChanged(WebView view, int progress) {
        if (progress == 100) {
            webView.loadUrl("javascript:document.getElementsByClassName('some-button-classname')[0].click()");
            Log.i("string1", "inside progress function");
        }
    }
});

Здесь я загружаю URL-адрес в веб-представлении, подождите, пока он не закончит sh loading (progress==100), затем нажмите кнопку в URL-адресе, введя JavaScript. Теперь после нажатия кнопки веб-страница изменяется (но имеет тот же URL-адрес) и дает мне еще одну кнопку, которую я хочу нажать.

Так что я снова делаю -

webView.loadUrl("javascript:document.getElementsByClassName('some-other-button-classname')[0].click()");
Log.i("string2", "after the progress function has finished");

Но это не не работает.

Я вышел из какой-то случайной строки, чтобы проверить, какая строка печатается первой, и увидел, что сначала печатается

string2, а затем приложение пытается загрузить URL, а затем string1 напечатано.

Я хочу нажимать много кнопок одну за другой, и веб-просмотр изменит его на HTML в курсе.

Как я могу продолжить процесс нажатия на разные кнопки, а не одну.

В основном - загрузка веб-страницы - я нажимаю кнопку - я жду - изменения веб-страницы - я нажимаю другую кнопку и так далее ...

...