2015-04-17 3 views
0

Я прочитал несколько руководств в Интернете, и я не знаю, все ли хорошо.Ошибка при попытке выполнить команду selendroid

Я написал этот метод, когда я нажму в какой-либо кнопке моего приложения для Android. Надеюсь, что мой клик на этой кнопке сможет открыть браузер Android и активировать Google.

Код:

package com.example.androidapp; 
 

 
import org.openqa.selenium.WebDriver; 
 
import org.openqa.selenium.remote.DesiredCapabilities; 
 
import org.openqa.selenium.remote.RemoteWebDriver; 
 

 
public class Sel { 
 
\t 
 
\t public void Trabalha(){ 
 
\t \t WebDriver driver = new RemoteWebDriver(DesiredCapabilities.android()); 
 
\t \t driver.get("http://google.com"); \t \t 
 
\t \t 
 
\t } 
 

 
}

после этого шага, я поместил selendroid .jar в том же каталоге моего проекта APK и я попробовал эту команду:

java -jar selendroid-standalone-0.15.0 

-with-dependencies.jar -app AndroidApp.apk

После этой команды я получаю ошибку ->

C:\Users\Cleiton\workspace\AndroidApp\bin>java -jar selendroid-standalone-0.15.0 
 
-with-dependencies.jar -app AndroidApp.apk 
 
abr 16, 2015 10:41:50 PM io.selendroid.standalone.SelendroidLauncher main 
 
INFORMAÃıES: ################# Selendroid ################# 
 
abr 16, 2015 10:41:50 PM io.selendroid.standalone.SelendroidLauncher main 
 
INFORMAÃıES: ################# Configuration in use ################# 
 
abr 16, 2015 10:41:50 PM io.selendroid.standalone.SelendroidLauncher main 
 
INFORMAÃıES: [email protected][ 
 
    port=4444 
 
    timeoutEmulatorStart=300000 
 
    supportedApps=[AndroidApp.apk] 
 
    verbose=false 
 
    emulatorPort=5560 
 
    deviceScreenshot=false 
 
    selendroidServerPort=8080 
 
    keystore=<null> 
 
    keystorePassword=<null> 
 
    keystoreAlias=<null> 
 
    emulatorOptions=<null> 
 
    keepEmulator=false 
 
    registrationUrl=<null> 
 
    proxy=<null> 
 
    serverHost=<null> 
 
    keepAdbAlive=false 
 
    maxSession=5 
 
    maxInstances=5 
 
    noWebViewApp=false 
 
    noClearData=false 
 
    sessionTimeoutSeconds=1800 
 
    forceReinstall=false 
 
    logLevel=ERROR 
 
    deviceLog=true 
 
    serverStartTimeout=20000 
 
    printHelp=false 
 
    serverStartRetries=5 
 
    folder=<null> 
 
] 
 
abr 16, 2015 10:41:50 PM io.selendroid.standalone.SelendroidLauncher launchServe 
 
r 
 
INFORMAÃıES: Starting Selendroid standalone on port 4444 
 
abr 16, 2015 10:41:50 PM io.selendroid.standalone.SelendroidLauncher launchServe 
 
r 
 
GRAVE: Error building server: Environment variable 'ANDROID_HOME' was not found! 
 

 
Exception in thread "main" io.selendroid.server.common.exceptions.SelendroidExce 
 
ption: Environment variable 'ANDROID_HOME' was not found! 
 
     at io.selendroid.standalone.android.AndroidSdk.androidHome(AndroidSdk.ja 
 
va:97) 
 
     at io.selendroid.standalone.android.AndroidSdk.platformToolsHome(Android 
 
Sdk.java:86) 
 
     at io.selendroid.standalone.android.AndroidSdk.aapt(AndroidSdk.java:39) 
 
     at io.selendroid.standalone.android.impl.DefaultAndroidApp.deleteFileFro 
 
mWithinApk(DefaultAndroidApp.java:107) 
 
     at io.selendroid.standalone.builder.SelendroidServerBuilder.deleteFileFr 
 
omAppSilently(SelendroidServerBuilder.java:135) 
 
     at io.selendroid.standalone.builder.SelendroidServerBuilder.resignApp(Se 
 
lendroidServerBuilder.java:144) 
 
     at io.selendroid.standalone.server.model.SelendroidStandaloneDriver.addT 
 
oAppsStore(SelendroidStandaloneDriver.java:121) 
 
     at io.selendroid.standalone.server.model.SelendroidStandaloneDriver.init 
 
ApplicationsUnderTest(SelendroidStandaloneDriver.java:155) 
 
     at io.selendroid.standalone.server.model.SelendroidStandaloneDriver.<ini 
 
t>(SelendroidStandaloneDriver.java:94) 
 
     at io.selendroid.standalone.server.SelendroidStandaloneServer.initialize 
 
SelendroidServer(SelendroidStandaloneServer.java:65) 
 
     at io.selendroid.standalone.server.SelendroidStandaloneServer.<init>(Sel 
 
endroidStandaloneServer.java:54) 
 
     at io.selendroid.standalone.SelendroidLauncher.launchServer(SelendroidLa 
 
uncher.java:65) 
 
     at io.selendroid.standalone.SelendroidLauncher.main(SelendroidLauncher.j 
 
ava:117) 
 

 
C:\Users\Cleiton\workspace\AndroidApp\bin>

------------- ------------ ОБНОВЛЕНО -------

ПОСЛЕ обновления в качестве системных переменных, ТОГДА Все работало.

Мне удалось запустить сервер !!!

Но теперь, когда я нажимаю кнопку, вызывающую функцию «TRABALHA», приложение просто заканчивается.

enter image description here

----- ОБНОВЛЕНИЕ ------------

Это выход LogCat при аварии приложение.

04-21 16:40:53.602: E/AndroidRuntime(1092): FATAL EXCEPTION: main 
04-21 16:40:53.602: E/AndroidRuntime(1092): Process: com.example.androidapp, PID: 1092 
04-21 16:40:53.602: E/AndroidRuntime(1092): java.lang.NoClassDefFoundError: Failed resolution of: Lorg/openqa/selenium/remote/RemoteWebDriver; 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at com.example.androidapp.Sel.Trabalha(Sel.java:10) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at com.example.androidapp.MainActivity.onClick(MainActivity.java:48) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at android.view.View.performClick(View.java:4780) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at android.view.View$PerformClick.run(View.java:19866) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at android.os.Handler.handleCallback(Handler.java:739) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at android.os.Handler.dispatchMessage(Handler.java:95) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at android.os.Looper.loop(Looper.java:135) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at android.app.ActivityThread.main(ActivityThread.java:5257) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at java.lang.reflect.Method.invoke(Native Method) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at java.lang.reflect.Method.invoke(Method.java:372) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
04-21 16:40:53.602: E/AndroidRuntime(1092): Caused by: java.lang.ClassNotFoundException: Didn't find class "org.openqa.selenium.remote.RemoteWebDriver" on path: DexPathList[[zip file "/data/app/com.example.androidapp-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
04-21 16:40:53.602: E/AndroidRuntime(1092):  ... 12 more 
04-21 16:40:53.602: E/AndroidRuntime(1092):  Suppressed: java.lang.ClassNotFoundException: org.openqa.selenium.remote.RemoteWebDriver 
04-21 16:40:53.602: E/AndroidRuntime(1092):   at java.lang.Class.classForName(Native Method) 
04-21 16:40:53.602: E/AndroidRuntime(1092):   at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
04-21 16:40:53.602: E/AndroidRuntime(1092):   at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
04-21 16:40:53.602: E/AndroidRuntime(1092):   at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
04-21 16:40:53.602: E/AndroidRuntime(1092):   ... 13 more 
04-21 16:40:53.602: E/AndroidRuntime(1092):  Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 
+1

У вас установлен Android-SDK? У вас есть переменная среды ANDROID_HOME, которая указывает на корневой каталог? (Для меня корневой каталог «C: \ Android SDK \ adt-bundle-windows-x86_64-20140321 \ sdk'). Хотя я использую Android Studio, которая обрабатывает все это для меня. –

+1

Пожалуйста, проверьте этот ответ и комментарии. http://stackoverflow.com/questions/28548638/execute-selenium-webdriver-script-on-android-phone/28549361#28549361 Это была бы длинная установка в первый раз. Дайте мне знать – vins

+0

Да, у меня: D, а мой android_home выглядит нормально. Я могу открыть sdk-manager. Когда я положил «Android» в окна CMD –

ответ

2
set ANDROID_HOME=C:\<installation location>\android-sdk-windows 
set PATH=%PATH%;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools 

Попробуйте установить ANDROID_HOME УМК, как я была такая же проблема при запуске сервера изначально, но в то время как Getting Started with Selendroid они дали ссылку, чтобы установить ANDROID_HOME переменную, которая устанавливает его с помощью ЦМД.

+0

, я сделал это, но у меня нет успеха.] –

+0

эта часть (системные переменные) будет решена. Теперь я могу запускать банку селена, но приложение падает. –

+0

Можете ли вы опубликовать, какую ошибку вы получаете в logcat, из-за которой ваше приложение рушится? –

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

  • Нет связанных вопросов^_^