You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Appium Java执行UI测试遇SessionNotCreatedException报错求助

解决Appium会话创建404(未知会话ID)问题的排查步骤
  • 检查Capability必填项是否完整且正确
    哪怕APK能启动,缺少或错误的核心Capability会导致会话无法正常创建。必须确保包含以下关键配置:

    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("platformName", "Android");
    caps.setCapability("deviceName", "emulator-5554"); // 对应adb devices里的设备名
    caps.setCapability("appPackage", "com.your.app.package"); // APK的包名
    caps.setCapability("appActivity", "com.your.app.MainActivity"); // 启动页Activity
    caps.setCapability("automationName", "UiAutomator2"); // Appium 2.x必须指定
    

    可以用aapt dump badging your.apk命令获取正确的appPackage和appActivity。

  • 确认Appium客户端与服务器版本兼容
    Appium 2.x和旧版1.x的客户端依赖差异很大:

    • 若用Appium Server 2.x,Java客户端需使用io.appium:java-client:8.x及以上版本
    • 不要混用旧版客户端(如7.x)和Appium 2.x服务器,会导致会话请求格式不匹配
  • 检查会话请求的URL路径
    Appium 2.x默认的会话请求路径是http://127.0.0.1:4723/,而旧版1.x是/wd/hub。如果代码里仍写旧路径,就会返回404:
    错误写法:

    new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), caps);
    

    正确写法(Appium 2.x):

    new AppiumDriver(new URL("http://127.0.0.1:4723/"), caps);
    

    可以在Appium服务器启动日志里确认路径,日志会显示REST http interface listener started on 0.0.0.0:4723,没有/wd/hub后缀。

  • 验证设备连接状态
    执行adb devices确保设备在线且无授权问题。如果设备状态是unauthorized,需要在模拟器/真机上授权调试连接。

  • 分析Appium服务器日志的错误细节
    服务器日志里会有会话创建失败的具体原因,比如:

    The desired capability 'appActivity' was not provided or was incorrect
    这类日志能直接定位问题,不要只看客户端抛出的404异常,重点看服务器端的错误输出。

  • 排查网络拦截问题
    关闭本地防火墙、代理软件,避免会话请求被拦截。有些代理会修改请求路径,导致Appium服务器无法识别。

内容的提问来源于stack exchange,提问作者TraFFy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 23:31:05