2016-02-17 4 views
1

Я пытаюсь нажать кнопку на веб-сайте. Я загружаю WebView с JavaScript, но до сих пор мне не повезло.WebView, проблемы с нажатием кнопки JavaScript

Я попробовал 2 новые методы, чтобы нажать на кнопку, как без Succes:

первый метод:

mWebView.loadUrl("javascript:var y = document.getElementById('form-login-submit'); y.click();"); 

второй метод:

mWebView.loadUrl("javascript:(function(){document.getElementById('form-login-submit').click();})()"); 

ошибки:

02-18 11:18:40.985 1478-1478/com.example.okke.testwebapp03 I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot set property 'value' of null", source: (1) 
02-18 11:18:40.989 1478-1478/com.example.okke.testwebapp03 I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot set property 'value' of null", source: (1) 
02-18 11:18:40.989 1478-1478/com.example.okke.testwebapp03 I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot read property 'click' of null", source: (1) 

Thi s в настоящее время мой код, чтобы выполнить все мои JS функции:

Log.d("IsJavaScriptEnabled?(2)", String.valueOf(mWebView.getSettings().getJavaScriptEnabled())); 
Log.d("IsDomStorageEnabled?(2)", String.valueOf(mWebView.getSettings().getDomStorageEnabled())); 
mWebView.loadUrl("javascript:var x = document.getElementById('modlgn-username').value = '" + userName + "';"); 
mWebView.loadUrl("javascript:var z = document.getElementById('modlgn-passwd').value = '" + passWord + "';"); 
mWebView.loadUrl("javascript:(function(){"+ 
      "var l=document.querySelector('#login-form [type="+'"'+"submit"+'"'+"]');"+ 
      "var e=document.createEvent('HTMLEvents');"+ 
      "e.initEvent('click',true,true);"+ 
      "l.dispatchEvent(e);"+ 
      "})()"); 

Эти ошибки я получаю в настоящее время:

02-17 15:12:20.578 19646-19646/com.example.okke.testwebapp03 I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot set property 'value' of null", source: (1) 
02-17 15:12:20.580 19646-19646/com.example.okke.testwebapp03 I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot set property 'value' of null", source: (1) 
02-17 15:12:20.582 19646-19646/com.example.okke.testwebapp03 I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot read property 'dispatchEvent' of null", source: (1) 
02-17 15:12:22.147 19646-19646/com.example.okke.testwebapp03 W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 19646 

Я пробовал несколько методов:

mWebView.loadUrl("javascript: var y = document.getElementsByName('Submit')[0]; y.click();"); 

Это дало меня эта ошибка:

02-17 11:25:20.008 5132-5132/com.example.okke.testwebapp03 I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot read property 'click' of undefined", source: (1) 
02-17 11:25:20.202 5132-5132/com.example.okke.testwebapp03 W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 5132 
02-17 11:25:21.130 5132-5132/com.example.okke.testwebapp03 W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 5132 
02-17 11:25:21.160 5132-5132/com.example.okke.testwebapp03 W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 5132 
02-17 11:25:21.195 5132-5132/com.example.okke.testwebapp03 W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 5132 

Второй метод:

mWebView.loadUrl("javascript:(function(){"+ 
        "l=document.getElementsByName('Submit')[0];"+ 
        "e=document.createEvent('HTMLEvents');"+ 
        "e.initEvent('click',true,true);"+ 
        "l.dispatchEvent(e);"+ 
        "})()"); 

Дал мне эту ошибку: Кроме того, эта ошибка делает крах сайта по какой-то причине, так как эта ошибка спам моего журналу.

02-17 11:28:13.368 6502-6502/com.example.okke.testwebapp03 I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot read property 'dispatchEvent' of undefined", source: (1) 
02-17 11:28:13.424 6502-6502/com.example.okke.testwebapp03 W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 6502 
02-17 11:28:14.270 6502-6502/com.example.okke.testwebapp03 W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 6502 
02-17 11:28:14.316 6502-6502/com.example.okke.testwebapp03 W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 6502 
02-17 11:28:14.344 6502-6502/com.example.okke.testwebapp03 W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 6502 
02-17 11:28:14.389 6502-6502/com.example.okke.testwebapp03 W/cr_BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 6502 

Третий способ:

mWebView.loadUrl("javascript: var y = document.querySelector('#login-form [type=" + "'" + "submit" + "'" + "]'); y.click();"); 

Дал мне эту ошибку:

02-17 11:31:01.786 8790-8790/com.example.okke.testwebapp03 I/chromium: [INFO:CONSOLE(1)] "Uncaught SyntaxError: missing) after argument list", source: (1) 

EDIT ---

Я JavaScript и DomStorage включен с этим кодом:

WebSettings settings = mWebView.getSettings(); 
    settings.setDomStorageEnabled(true); 
    settings.setJavaScriptEnabled(true); 
+0

Где находится URL с сайта вы хотите нажать что-нибудь? Потому что нет ... –

+0

Загружается раньше, я также заполнил 2 текстовых поля на WebSite с помощью метода loadUrl. Поэтому я знаю, что эта часть работает. –

+0

Вы уверены, что получаете правильный элемент с 'document.getElementsByName ('Submit') [0]'? –

ответ

0

Вы должны включить JavaScript в вашем Webview настройках см этот ответ: https://stackoverflow.com/a/5089694/4310905

+0

У меня уже есть JavaScript и DomStorage с: Настройки WebSettings = mWebView.getSettings(); Настройки.setDomStorageEnabled (истина); settings.setJavaScriptEnabled (true); –

0

Попробуйте его с этим

mWebView.loadUrl("javascript: document.getElementsByName('Submit')[0].click()"); 
+0

Только что дал мне эту ошибку ' 02-17 12: 06: 19.476 12094-12094 /? I/chromium: [INFO: CONSOLE (1)] "Uncaught TypeError: Не удается прочитать свойство 'click' undefined ', source: (1)' –

Смежные вопросы