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

Appium代码启动服务遇SessionNotCreatedException(404)求助

问题描述

通过代码启动Appium服务后,抛出org.openqa.selenium.SessionNotCreatedException异常,无法创建新会话,响应码404,提示请求资源未找到或HTTP方法不被支持。使用Android模拟器运行应用,相关信息如下:

报错详情

org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 404. Message: The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource 
Host info: host: 'DESKTOP-SUFA48T', ip: '192.168.0.177'
Build info: version: '4.6.0', revision: '79f1c02ae20'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.8.1'
Driver info: io.appium.java_client.android.AndroidDriver
Command: [null, newSession {capabilities=[{appium:app=C:\Users\HP\Mobile Testing\MobileTestingAppium\src\test\java\resources\ApiDemos-debug.apk, appium:automationName=UiAutomator2, appium:deviceName=Pixel 2 API 28, platformName=ANDROID}], desiredCapabilities=Capabilities {app: C:\Users\HP\Mobile Testing\..., automationName: UiAutomator2, deviceName: Pixel 2 API 28, platformName: ANDROID}}]
Capabilities {}

Android模拟器

Android模拟器

代码实现

@Test
public void config() throws MalformedURLException {

    AppiumDriverLocalService service = new AppiumServiceBuilder()
            .withAppiumJS(
                    new File("C:\\Users\\HP\\AppData\\Roaming\\npm\\node_modules\\appium\\build\\lib\\main.js"))
            .withIPAddress("127.0.0.1").usingPort(4723).withTimeout(Duration.ofSeconds(300)).build();

    service.start();

    // Construct the complete URL with the custom base path
    URL link = new URL("http://127.0.0.1:4723/wd/hub");
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Pixel 2 API 28");
    capabilities.setCapability(MobileCapabilityType.APP,
            "C:\\Users\\HP\\Mobile Testing\\MobileTestingAppium\\src\\test\\java\\resources\\ApiDemos-debug.apk");
    capabilities.setCapability("automationName", "UiAutomator2"); // for Android

    AndroidDriver driver = new AndroidDriver(link, capabilities);

    driver.quit();

}
解决方案
  • 修正Appium连接URL:Appium 2.x版本已移除默认的/wd/hub路径,手动拼接的URL会导致404错误。建议直接通过service.getUrl()获取服务启动后的有效URL,避免路径错误:
    // 替换手动拼接的URL,使用服务提供的正确地址
    URL link = service.getUrl();
    
  • 检查AppiumJS路径正确性:Appium 2.x的main.js路径通常为C:\\Users\\HP\\AppData\\Roaming\\npm\\node_modules\\appium\\lib\\main.js(无build目录),如果路径错误会导致服务启动异常,进而引发404。
  • 版本兼容性验证:确保Appium Java Client版本与Appium服务版本匹配,推荐使用8.x及以上版本的Java Client适配Appium 2.x。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:36:33