2013-04-10 2 views
6

Ich bin dabei, ein Android-Testfarmsystem zu erstellen, und während ich dabei bin, versuche ich, eine Möglichkeit zu finden, JavaScript in eine bereits geöffnete Registerkarte im Standardbrowser zu injizieren.Wie injiziere Javascript Code mit ADB in einem Browser Tab öffnen?

Ich versuche, mit

adb shell am start -a android.intent.action.VIEW -d "javascript:alert('Hello world!');" -n com.android.browser/com.android.browser.BrowserActivity 

und während es funktioniert, öffnet es in einem neuen Tab.

Gibt es eine Möglichkeit, es in der aktuellen Registerkarte zu tun?

Antwort

0

Wenn Sie Chrome als Standardbrowser für neuere Android-Versionen verwenden, können Sie Chrome remote debugging verwenden.

Sobald Sie dies auf dem Gerät aktiviert haben (USB-Debugging aktivieren + Web-Debugging), können Sie durch Ausführen verbinden:

adb forward tcp:9222 localabstract:chrome_devtools_remote

Wenn Sie schlagen localhost: 9222 von Ihrem Browser, werden Sie Sehen Sie sich die chrome dev tools für jede Ihrer Registerkarten an. Von hier aus können Sie alles tun, was Sie normalerweise im Desktop-Inspektor vornehmen können, einschließlich der Ausführung von JavaScript von der Konsole aus.

Wenn dies nicht ausreichend automatisiert ist, können Sie eine App schreiben, die ein WebView verwendet, sie so konfigurieren, dass sie eine Absicht behandelt, bei der Sie beliebiges JavaScript bereitstellen, und webview.loadUrl(js) verwenden, um sie auszuführen.