Skip to content

Error proxy for java #92

@pbezpal

Description

@pbezpal

Hello!

We have stack

java 17
appium 3.2.0
JUnit

and I settings appium server

@Log4j2
@Getter
public class AppiumServer {

    private AppiumDriverLocalService service;

    public AppiumServer run(String url, String port) {
        ServerLogLevel logLevel = getLaunchProperties().getServerLogs();
        try {
            AppiumServiceBuilder builder = new AppiumServiceBuilder()
                    .withArgument(new ServerArgument() {
                        @Override
                        public String getArgument() {
                            return "-ka";
                        }
                    }, "800")
                    .withArgument(USE_PLUGINS, "appium-interceptor")
                    .usingAnyFreePort()
                    .withArgument(ALLOW_INSECURE, "chromedriver_autodownload")
                    .withArgument(RELAXED_SECURITY)
                    .withIPAddress(url);

            if (logLevel != null && !logLevel.equals(ServerLogLevel.NONE)) {
                builder.withArgument(LOG_LEVEL, logLevel.logLevel());
            }
            AppiumDriverLocalService service = builder.build();
            service.start();

            if (logLevel == null || logLevel.equals(ServerLogLevel.NONE)) {
                service.clearOutPutStreams();
            }
            log.info("Appium Server is running on port: " + service.getUrl());
            if (!service.isRunning()) {
                throw new AppiumServerHasNotBeenStartedLocallyException("An appium server node is not started!");
            }
            this.service = service;
            return this;
        } catch (Exception e) {
            throw new AppiumServerHasNotBeenStartedLocallyException("Something went wrong during run appium server: " + e);
        }
    }

    public void stop() {
        service.stop();
        log.info("Appium Server has been stopped");
    }
}

log appium

20:11:39.977 [ForkJoinPool-1-worker-1] INFO  r.t.m.c.l.d.LocalMobileDriver:32 - Creating configuration for local device
[Appium] Attempting to load plugin appium-interceptor...
[Appium] Requiring plugin at /Users/u_m1asj/.appium/node_modules/appium-interceptor/lib/index.js
[Appium] AppiumInterceptorPlugin has been successfully loaded in 0.340s
[Appium] Welcome to Appium v3.2.0 (REV 179d45050be0a71fd57591b0ed8aedf9b177ba10)
[Appium] Non-default server args:
[Appium] { address: '127.0.0.1',
  allowInsecure: [ 'chromedriver_autodownload' ],
  keepAliveTimeout: 800,
  port: 26687,
  relaxedSecurityEnabled: true,
  usePlugins: [ 'appium-interceptor' ] }
[Appium] Enabling relaxed security. All insecure features will be enabled unless explicitly disabled by --deny-insecure
[Appium] The autodetected Appium home path: /Users/u_m1asj/.appium
[Appium] Attempting to load driver uiautomator2...
[Appium] Attempting to load driver xcuitest...
[Appium] Requiring driver at /Users/u_m1asj/.appium/node_modules/appium-uiautomator2-driver/build/lib/index.js
[Appium] Requiring driver at /Users/u_m1asj/.appium/node_modules/appium-xcuitest-driver/build/lib/index.js
[Appium] AndroidUiautomator2Driver has been successfully loaded in 0.385s
[Appium] XCUITestDriver has been successfully loaded in 0.881s
[Appium] Appium REST http interface listener started on http://127.0.0.1:26687
[Appium] Available drivers:
[Appium]   - uiautomator2@6.8.2 (automationName 'UiAutomator2')
[Appium]   - xcuitest@10.22.0 (automationName 'XCUITest')
[Appium] Available plugins:
[Appium]   - appium-interceptor@1.0.3 (ACTIVE)

also settings capability

@Slf4j
public class AndroidCapabilities implements MobileCapabilities<UiAutomator2Options> {

    private final AndroidPropertyProvider androidProperty = ParameterAccessor.getAndroidProperties();
    private final LaunchPropertyProvider launchProperty = ParameterAccessor.getLaunchProperties();

    @Override
    public UiAutomator2Options getCapabilities(Device device, GridAddress gridAddress) {
        UiAutomator2Options options = new UiAutomator2Options();
        options.setAutomationName(androidProperty.getAutomationName())
                .setUdid(device.getUdid())
                .setNoReset(launchProperty.getNoReset())
                .setFullReset(launchProperty.isFullReset())
                .setIgnoreHiddenApiPolicyError(launchProperty.isIgnoreHiddenApiPolicyError())
                .setUiautomator2ServerLaunchTimeout(Duration.ofSeconds(launchProperty.getUiautomator2ServerLaunchTimeout()))
                .setAutoGrantPermissions(androidProperty.isAutoGrantPermissions())
                .setClearSystemFiles(launchProperty.isClearSystemFiles())
                .setNewCommandTimeout(Duration.ofSeconds(launchProperty.getNewCommandDuration()))
                .clearDeviceLogsOnStart();

        if (!device.getName().isEmpty()) {
            options.setDeviceName(device.getName());
        }

        if (launchProperty.isInstallApp()) {
            options.setApp(launchProperty.getAppPath());
        } else {
            options.setAppPackage(androidProperty.getFeatureAppPackage())
                    .setAppActivity(androidProperty.getAppActivity());
        }

        options.setCapability("appium:startProxyAutomatically", true); //start proxy

        return options;
    }

}

but I get error after the test

@Test
    @AllureId("197454")
    @Tags({@Tag(IOS), @Tag(ANDROID)})
    @DisplayName("Не самозанятый пользователь может переходить на экран Самозанятость с экрана профиля пользователя")
    void unSmzUserEnterSmzFromUserProfileTest() throws IOException {

        registerDefaultUser();

        mobileAction.loadPage(mainPage)
                .tap().onElement(mainPage.getProfileButton())
                .loadPage(userProfilePage)
                .swipe().toElement(userProfilePage.getRegistrationAndDocument(), TouchActions.Direction.UP, 3);

        System.out.println("NETWORK DATA 1: "  + getDriver().executeScript("interceptor: getInterceptedData"));
        mobileAction.tap().onElement(userProfilePage.getRegistrationAndDocument())
                .loadPage(selfEmployedPage)
                .checkThatElement(selfEmployedPage.getSelfEmployedRegistration())
                .isVisible("Элемент Регистрация самозанятого не отображается");
    }

    @AfterAll
    static void tearDown() throws IOException {
        //clearAllMocks();
        System.out.println("NETWORK DATA 2: "  + getDriver().executeScript("interceptor: getInterceptedData"));
    }
Proxy is not active for current session
Build info: version: '4.35.0', revision: '1c58e5028b'
System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '26.3', java.version: '17.0.9'
Driver info: io.appium.java_client.android.AndroidDriver
Command: [2a5eca16-70ee-4b2a-93ba-10dae6a8012f, executeScript {args=[], script=interceptor: getInterceptedData}]
Capabilities {appium:app: /Users/u_m1asj/Downloads/al..., appium:appActivity: ru.alfabank.mobile.android...., appium:appPackage: ru.alfabank.mobile.android...., appium:autoGrantPermissions: false, appium:automationName: UiAutomator2, appium:clearDeviceLogsOnStart: true, appium:clearSystemFiles: true, appium:databaseEnabled: false, appium:desired: {app: /Users/u_m1asj/Downloads/al..., autoGrantPermissions: false, automationName: UiAutomator2, clearDeviceLogsOnStart: true, clearSystemFiles: true, fullReset: false, ignoreHiddenApiPolicyError: false, newCommandTimeout: 60, noReset: false, platformName: ANDROID, startProxyAutomatically: true, udid: fba94a73, uiautomator2ServerLaunchTimeout: 60000}, appium:deviceApiLevel: 33, appium:deviceManufacturer: Xiaomi, appium:deviceModel: M2101K6G, appium:deviceName: fba94a73, appium:deviceScreenDensity: 440, appium:deviceScreenSize: 1080x2400, appium:deviceUDID: fba94a73, appium:fullReset: false, appium:ignoreHiddenApiPolicyError: false, appium:javascriptEnabled: true, appium:locationContextEnabled: false, appium:networkConnectionEnabled: true, appium:newCommandTimeout: 60, appium:noReset: false, appium:pixelRatio: 2.75, appium:platformVersion: 13, appium:startProxyAutomatically: true, appium:statBarHeight: 93, appium:takesScreenshot: true, appium:udid: fba94a73, appium:uiautomator2ServerLaunchTimeout: 60000, appium:viewportRect: {height: 2307, left: 0, top: 93, width: 1080}, appium:warnings: {}, appium:webStorageEnabled: false, platformName: ANDROID}
Session ID: 2a5eca16-70ee-4b2a-93ba-10dae6a8012f
org.openqa.selenium.WebDriverException: Proxy is not active for current session
Build info: version: '4.35.0', revision: '1c58e5028b'
System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '26.3', java.version: '17.0.9'
Driver info: io.appium.java_client.android.AndroidDriver
Command: [2a5eca16-70ee-4b2a-93ba-10dae6a8012f, executeScript {args=[], script=interceptor: getInterceptedData}]
Capabilities {appium:app: /Users/u_m1asj/Downloads/al..., appium:appActivity: ru.alfabank.mobile.android...., appium:appPackage: ru.alfabank.mobile.android...., appium:autoGrantPermissions: false, appium:automationName: UiAutomator2, appium:clearDeviceLogsOnStart: true, appium:clearSystemFiles: true, appium:databaseEnabled: false, appium:desired: {app: /Users/u_m1asj/Downloads/al..., autoGrantPermissions: false, automationName: UiAutomator2, clearDeviceLogsOnStart: true, clearSystemFiles: true, fullReset: false, ignoreHiddenApiPolicyError: false, newCommandTimeout: 60, noReset: false, platformName: ANDROID, startProxyAutomatically: true, udid: fba94a73, uiautomator2ServerLaunchTimeout: 60000}, appium:deviceApiLevel: 33, appium:deviceManufacturer: Xiaomi, appium:deviceModel: M2101K6G, appium:deviceName: fba94a73, appium:deviceScreenDensity: 440, appium:deviceScreenSize: 1080x2400, appium:deviceUDID: fba94a73, appium:fullReset: false, appium:ignoreHiddenApiPolicyError: false, appium:javascriptEnabled: true, appium:locationContextEnabled: false, appium:networkConnectionEnabled: true, appium:newCommandTimeout: 60, appium:noReset: false, appium:pixelRatio: 2.75, appium:platformVersion: 13, appium:startProxyAutomatically: true, appium:statBarHeight: 93, appium:takesScreenshot: true, appium:udid: fba94a73, appium:uiautomator2ServerLaunchTimeout: 60000, appium:viewportRect: {height: 2307, left: 0, top: 93, width: 1080}, appium:warnings: {}, appium:webStorageEnabled: false, platformName: ANDROID}
Session ID: 2a5eca16-70ee-4b2a-93ba-10dae6a8012f
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at org.openqa.selenium.remote.ErrorCodec.decode(ErrorCodec.java:167)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:138)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:50)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:215)
	at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:243)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:557)

Does this work for java?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions