以编程方式启动 Appium 时出现状态 404 错误

问题描述 投票:0回答:1

将 Appium 更新到较新版本 Appium 1.22.3 后,我在尝试以编程方式启动 Appium 时收到状态 404 错误。

它曾经在旧版本中工作正常,但现在我有点不确定为什么会收到此错误。

public void globalSetup(ITestContext context) throws Exception {
    // Load Props
    loadProperties("appiumTests.properties");

    // Load Secrets, Create the file
    loadSecrets(System.getProperty("user.home") + "/automationSecrets.properties");

    // Get Suite name
    prop.setProperty("SuiteName", context.getName());

    if (getRestartDeviceProperty().equals("true")) {
        DeviceInteractions.rebootDevice(getPlatformData(), getDeviceUdidData(getDeviceNameData()));
    }
    logger.info("Building Appium Server...");
    AppiumServiceBuilder builder = new AppiumServiceBuilder()
            .withAppiumJS(new File("/usr/local/lib/node_modules/appium/build/lib/main.js"))
            .withArgument(GeneralServerFlag.LOG_LEVEL, "info").withArgument(GeneralServerFlag.RELAXED_SECURITY)
            .withLogFile(new File(System.getProperty("user.dir") + "/logs/appium.log")).usingAnyFreePort();

    service = builder.build();
    logger.info("The url is" +service);
    logger.info("Appium server is built.");
    logger.info("Starting appium server...");
    service.start();
    logger.info("Appium server started.");
    cleanFileContent("report.txt");

    // Clean TestID file
    prop.setProperty(testRailRunIDProp, "");
}

public URL getServiceUrl() {
    return service.getUrl();

}

在设置中我这样称呼司机。

driver = new AndroidDriver(getServiceUrl(), capabilities);

我遇到的错误

[调试] 2024-05-21 18:07:31.339 [org.testng.log4testng.Logger.debug(Logger.java:82)] - suiteXmlPath:“/Users/subh/Library/Caches/JetBrains/IdeaIC2024.1 /temp-testng-customsuite.xml" [信息] 2024-05-21 18:07:32.075 [org.testng.log4testng.Logger.info(Logger.java:112)] - [TestNG] 运行: /Users/subh/Library/Caches/JetBrains/IdeaIC2024.1/temp-testng-customsuite.xml

[ INFO ] 2024-05-21 18:07:32.144 [TestHelpers.PropertiesHelper.getRestartDeviceProperty(PropertiesHelper.java:207)] - 从“appiumTests.properties”文件加载“RestartDevice”属性 [信息] 2024-05-21 18:07:32.144 [TestFixtures.BaseTestFixture.globalSetup(BaseTestFixture.java:93)] - 构建 Appium 服务器... [信息] 2024-05-21 18:07:32.245 [TestFixtures.BaseTestFixture.globalSetup(BaseTestFixture.java:100)] - url isio.appium.java_client.service.local.AppiumDriverLocalService@45c80312 [ INFO ] 2024-05-21 18:07:32.245 [TestFixtures.BaseTestFixture.globalSetup(BaseTestFixture.java:101)] - Appium 服务器已构建。 [信息] 2024-05-21 18:07:32.245 [TestFixtures.BaseTestFixture.globalSetup(BaseTestFixture.java:102)] - 启动appium服务器... [Appium] 欢迎使用Appium v1.22.3 [Appium] 非默认服务器参数: [Appium]端口:16292 [Appium] 日志文件:/Users/subh/IdeaProjects/tile_mobile_automation/logs/appium.log [Appium] 日志级别:信息 [Appium]relaxedSecurityEnabled:true [Appium] Appium REST http 接口侦听器于 0.0.0.0:16292 启动 [HTTP] --> 获取/状态 [HTTP] {} [HTTP] <-- GET /status 404 13 ms - 211 [HTTP] [HTTP] --> 获取/状态 [HTTP] {} [HTTP] <-- GET /status 404 9 ms - 211 [HTTP]

java macos intellij-idea appium
1个回答
0
投票

该问题可能是由于 Appium 版本之间 Appium 默认服务器路径的更改引起的。

在 Appium 1.22.3 中,状态端点的路径已从 /wd/status 更改为 /`。

修复方法如下:

更新URL构造:

不要使用 getServiceUrl(),而是使用 new URL(getServiceUrl(), "/wd/hub")。这会添加必要的路径段。 说明:

getServiceUrl() 从 Appium 检索基本 URL。 附加 /wd/hub 指定 Appium 1.22.3 中状态检查的正确端点。

© www.soinside.com 2019 - 2024. All rights reserved.