我正在使用这段代码,无法启动移动设备的应用程序。
package Mobileapp1;
.
.
import io.appium.java_client.remote.MobileCapabilityType;
public class Apptesting
{
public static void main(String[] args) throws MalformedURLException
{
DesiredCapabilities c=new DesiredCapabilities();
c.setCapability(CapabilityType.BROWSER_NAME, "");
c.setCapability("deviceName", "ZZ2222HMLF");
c.setCapability("platformName", "Android");
c.setCapability("platformversion", "7.0");
c.setCapability(MobileCapabilityType.APP, "D:\\Appium\\edTheSIS_11_02_2019.apk");
c.setCapability("noReset", true);
c.setCapability("autoGrantPermissions", "true");
c.setCapability("appPackage","com.sisapp.in.sisapp");
//c.setCapability("appPackage","com.sisapp.in.sisapp.SplashActivity"); Tried not working same issue
c.setCapability("appActivity", "SplashActivity");
//c.setCapability("appActivity",".md5b1afd03e09ce5243fd0287b176ff38ea.MainActivity");
URL U=new URL("http://127.0.0.1:4723/wd/hub");
WebDriver driver=new AndroidDriver(U,c);
//driver.findElement(By.linkText("Username")).sendKeys("as@ct");
}
}TLDR:
原始错误:用于启动应用程序的活动名称“.SplashActivity”不存在或无法启动!确保它存在并且是一个可启动的活动。
下面是我的错误日志
Log4j:没有为记录器(org.apache.http.client.protocol.RequestAddCookies).找到任何附加程序log4j :警告请正确初始化log4j系统。Log4j:警告参见http://logging.apache.org/log4j/1.2/faq.html#noconfig以获得更多信息。线程"main“org.openqa.selenium.WebDriverException中的异常:在处理命令时发生了一个未知的服务器端错误。原始错误:无法启动“com.sisapp.in.sisapp”应用程序。请访问https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md进行故障排除。原始错误:无法启动“com.sisapp.in.sisapp”应用程序。请访问https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md进行故障排除。原始错误:用于启动应用程序的活动名称“.SplashActivity”不存在或无法启动!确保它存在并且是一个可启动的活动构建信息:版本:'3.8.1',修订:'6e95a6684b',时间:'2017-12-01T19:05:14.666Z‘系统信息:主机:’DELL30 30‘,ip:'10.10.4.222',os.name:'Windows 7',os.arch:’and 64‘,os.version:’6.1,‘java.version:'1.8.0_151‘驱动程序信息: driver.version: AndroidDriver远程堆栈跟踪: UnknownError:处理命令时发生了一个未知的服务器端错误。原始错误:无法启动“com.sisapp.in.sisapp”应用程序。请访问https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md进行故障排除。原始错误:无法启动“com.sisapp.in.sisapp”应用程序。请访问https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md进行故障排除。原始错误:用于启动应用程序的活动名称“.SplashActivity”不存在或无法启动!确保它存在,并且是(C:\Users\arvind\AppData\Local\appium-desktop\app-1.10.0\resources\app\node_modules\appium-base-driver\lib\protocol\errors.js:826:9) at asyncHandler (C:\Users\arvind\AppData\Local\appium-desktop\app-1.10.0\resources\app\node_modules\appium-base-driver\lib\protocol\protocol.js:447:37)的getResponseForW3CError的可启动活动。(内部/process/next_tick.js:68:7)在sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown来源)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown源)在java.lang.reflect.Constructor.newInstance(Unknown源)在org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57) at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(( org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:123) at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source( java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)在java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source) ( java.util.stream.AbstractPipeline.copyInto(Unknown Source) ( java.util.stream.AbstractPipeline.wrapAndCopyInto )(未知源)在java.util.stream.FindOps$FindOp.evaluateSequential(Unknown源)在java.util.stream.AbstractPipeline.evaluate(Unknown源)在java.util.stream.ReferencePipeline.findFirst(Unknown源) org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:89) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601) at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42) at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1) at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219) at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:142) at io.appium.java_client.DefaultGenericMobileDriver.(DefaultGenericMobileDriver.java:38) at io.appium.java_client.AppiumDriver.(AppiumDriver.java:83) at io.appium.java_client.AppiumDriver.(AppiumDriver.java:93) at io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:72) at Mobileapp1.Apptesting.main(Apptesting.java:29)
发布于 2019-03-12 05:42:55
如果使用的是应用程序功能,则不需要指定appPackage和appActivity功能。另外,如果您没有测试本地应用程序,browserName功能就不是必需的。
DesiredCapabilities c=new DesiredCapabilities();
c.setCapability("deviceName", "ZZ2222HMLF");
c.setCapability("platformName", "Android");
c.setCapability("app", "D:\\Appium\\edTheSIS_11_02_2019.apk");
c.setCapability("noReset", true);
c.setCapability("autoGrantPermissions", "true");
URL U=new URL("http://127.0.0.1:4723/wd/hub");
AppiumDriver<MobileElement> driver=new AndroidDriver(U,c);如果您想了解应用程序的appPackage和appActivity,可以将设备连接到计算机,打开应用程序并运行以下命令:
adb shell
dumpsys window windows | grep -E 'mFocusedApp'这将显示您的appActivity和appPackage。要了解更多关于它的信息,您可以查看此链接。
发布于 2019-03-11 16:01:37
对于我来说,使用"appActivity“的完整路径通常有效:
c.setCapability("appPackage","com.sisapp.in.sisapp.SplashActivity");或者您的开始活动有不同的名称。然后,在通过亚行手动启动应用程序之后,尝试找出当前活动的真实名称:
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'或
adb shell dumpsys activity发布于 2019-03-11 21:28:04
尝试下面提到的依赖项,您可以启动应用程序而无需提及MainActivity。
https://stackoverflow.com/questions/55105538
复制相似问题