Appium 2.5.2会话创建失败:指定Activity无法启动求助
解决Appium 2.5.2 SessionNotCreatedException(等待SplashActivity超时)的方案
配置多Activity等待列表
在Desired Capabilities中添加appWaitActivity参数,指定启动过程中可能出现的所有Activity,允许Appium等待任意一个目标Activity出现。示例配置:capabilities.setCapability("appWaitActivity", "com.your.package.SplashActivity,com.your.package.MainActivity");也可以用通配符匹配该包下所有Activity:
capabilities.setCapability("appWaitActivity", "com.your.package/*");延长Activity等待超时时间
若SplashActivity跳转过快或设备性能较差,可通过appWaitDuration参数延长等待时长(默认20000ms),示例:capabilities.setCapability("appWaitDuration", 30000); // 30秒验证实际启动的Activity栈
用adb命令确认应用启动后的真实Activity序列,避免配置的Activity名称与实际不符:adb shell dumpsys activity activities查看输出中的
Resumed Activity和Activity栈信息,确保appActivity和appWaitActivity的配置与实际一致。手动控制应用启动流程
将Desired Capabilities中的autoLaunch设为false,创建会话后手动启动应用并处理Activity跳转:capabilities.setCapability("autoLaunch", false); // 创建会话 AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); // 手动启动应用 driver.startActivity(new Activity("com.your.package", "com.your.package.SplashActivity")); // 等待MainActivity出现 new WebDriverWait(driver, Duration.ofSeconds(10)).until( ExpectedConditions.visibilityOfElementLocated(By.id("com.your.package:id/main_layout")) );排查应用启动异常
查看Appium服务日志的详细输出,确认是否存在应用安装失败、权限不足或设备连接问题,这些情况可能伪装成Activity等待超时的错误。
内容的提问来源于stack exchange,提问作者Michal Tománek
相关产品推荐
相关产品推荐

