Appium 服务器未与模拟器建立连接

Posted

技术标签:

【中文标题】Appium 服务器未与模拟器建立连接【英文标题】:Appium server is not getting connect with the emulator 【发布时间】:2016-05-14 04:51:23 【问题描述】:

我最近开始使用 appium。我在 android 模拟器中使用 appium 成功调用了一个虚拟应用程序。

但是,当我尝试我们的实际应用程序时,会弹出一个弹出窗口说:

应用程序错误与服务器的连接不成功。 (文件:///android_asset/www/index.html

一旦接受,申请即被关闭。

我可以在模拟器中手动访问同一个应用程序,并且不会弹出任何弹出窗口。我附上了问题的屏幕截图和 appium 设置。如果你们中的任何人遇到过类似的问题,请提供帮助。

eclipse中的错误信息如下,同时附上appium日志文件。请帮忙

org.openqa.selenium.WebDriverException:尚未实现。请帮助我们:http://appium.io/get-involved.html(警告:服务器未提供任何堆栈跟踪信息)

命令持续时间或超时:3 毫秒 构建信息:版本:'2.41.0',修订:'3192d8a',时间:'2014-03-27 17:18:15' 系统信息:主机:'CESCHNDES-0007',ip:'192.168.28.66',os.name:'Windows 7',os.arch:'x86',os.version:'6.1',java.version:'1.7 .0_55' 会话 ID:f7ec8638-d504-45dd-92dc-18be645af04d 驱动程序信息:org.openqa.selenium.remote.RemoteWebDriver 功能 [platform=WINDOWS, app=D:\Testing\Kinnser\Kinnserbuild\Kinnser5.apk, javascriptEnabled=true, acceptSslCerts=true, browserName=Android, appActivity=com.kinnser.mobile.KinnserMobile, desired=platform=WINDOWS , app=D:\Testing\Kinnser\Kinnserbuild\Kinnser5.apk, acceptSslCerts=true, browserName=Android, appActivity=com.kinnser.mobile.KinnserMobile, device=Android 模拟器, appPackage=com.kinnser.mobile, 版本=4.4 .2、appPackage=com.kinnser.mobile、version=4.4.2、platformVersion=4.1、databaseEnabled=false、webStorageEnabled=false、device=Android Emulator、warnings=、takeScreenshot=true]

在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源) 在 java.lang.reflect.Constructor.newInstance(Unknown Source) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:610) 在 org.openqa.selenium.remote.RemoteWebDriver.getTitle(RemoteWebDriver.java:309) 在 test.FirstSample.main(FirstSample.java:41)

【问题讨论】:

您能否分享一段代码,以便为 Appium 设置所需的功能? DesiredCapabilities cap = new DesiredCapabilities(); cap.setCapability(MobileCapabilityType.PLATFORM_NAME,MobilePlatform.ANDROID); cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android 模拟器"); cap.setCapability(MobileCapabilityType.PLATFORM,“Windows”); cap.setCapability(MobileCapabilityType.VERSION,“5.0.1”); cap.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); 请尽快提出建议。 cap.setCapability(MobileCapabilityType.APP_PACKAGE, "com.Honkampkrueger.hk"); cap.setCapability(MobileCapabilityType.APP_ACTIVITY, ".MainActivity"); AndroidDriver and = new AndroidDriver(new URL("127.0.0.1:4723/wd/hub"),cap); and.startActivity("appPackage","com.example.android.apis", null, null); 文件路径为:File appDir = new File("Src");文件 app = new File(appDir, "honkamp.apk"); 【参考方案1】:

我认为问题可能是您设置的所需功能,因为我可以从日志中推断出。 Server capabilities 建议:

platform=WINDOWS //incorrect assignment
app=D:\Testing\Kinnser\Kinnserbuild\Kinnser5.apk
javascriptEnabled=true
acceptSslCerts=true 
browserName=Android //incorrect assignment
appActivity=com.kinnser.mobile.KinnserMobile
device=Android Emulator
appPackage=com.kinnser.mobile 
version=4.4.2 //preferred platformVersion
platformVersion=4.1
databaseEnabled=false 
webStorageEnabled=false 
warnings=
takesScreenshot=true

您可以更改以下内容:

cap.setCapability(MobileCapabilityType.PLATFORM_NAME,MobilePlatform.ANDROID)‌​; 
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
cap.setCapability(MobileCapabilityType.PLATFORM, "Windows");
cap.setCapability(MobileCapabilityType.VERSION, "5.0.1");

cap.setCapability(MobileCapabilityType.PLATFORM_NAME,MobilePlatform.ANDROID)‌​; 
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
//platform already specified
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "5.0.1"); //platform version of android

【讨论】:

谢谢..但我有一个主要问题是我的模拟器需要太多时间才能完全启动,并且当我尝试通过 appium 服务器运行我的应用程序时。它给出错误:模拟器需要很长时间才能完全加载,因此当我尝试通过 appium 服务器调用 android 应用程序时会生成错误:无法创建新会话。 (原始错误:UiAutomator 在成功启动之前退出)。 而且,android 经常卡在 Android 屏幕上,无法进一步启动。所以在我完全启动模拟器之前,我无法调用应用程序。请帮忙。 我预计您可能正在使用 AVD。虽然没有广告,但我个人使用 Genymotion 来创建更快的模拟器。 是的,我正在使用 AVD.. 那么我该如何摆脱这个问题,请提出建议。 抱歉,对 AVD 的性能提升不太了解

以上是关于Appium 服务器未与模拟器建立连接的主要内容,如果未能解决你的问题,请参考以下文章

Appium的测试简单流程

Appium环境安装

Appium进行自动化测试的时候,始终无反应,也没有日志输出,请问啥原因?

利用Appium自动控制移动设备并提取数据

appium连接模拟器时屏幕倒转

[Win10] Appium连接逍遥模拟器