Best io.appium code snippet using io.appium.java_client.remote.AppiumCommandExecutor.setPrivateFieldValue
AppiumCommandExecutor.java
Source:AppiumCommandExecutor.java  
...90            throw new WebDriverException(e);91        }92    }93    @SuppressWarnings("SameParameterValue")94    protected void setPrivateFieldValue(95            Class<? extends CommandExecutor> cls, String fieldName, Object newValue) {96        try {97            final Field f = cls.getDeclaredField(fieldName);98            f.setAccessible(true);99            f.set(this, newValue);100        } catch (NoSuchFieldException | IllegalAccessException e) {101            throw new WebDriverException(e);102        }103    }104    protected Map<String, CommandInfo> getAdditionalCommands() {105        //noinspection unchecked106        return getPrivateFieldValue(HttpCommandExecutor.class, "additionalCommands", Map.class);107    }108    protected CommandCodec<HttpRequest> getCommandCodec() {109        //noinspection unchecked110        return getPrivateFieldValue(HttpCommandExecutor.class, "commandCodec", CommandCodec.class);111    }112    protected void setCommandCodec(CommandCodec<HttpRequest> newCodec) {113        setPrivateFieldValue(HttpCommandExecutor.class, "commandCodec", newCodec);114    }115    protected void setResponseCodec(ResponseCodec<HttpResponse> codec) {116        setPrivateFieldValue(HttpCommandExecutor.class, "responseCodec", codec);117    }118    protected HttpClient getClient() {119        return getPrivateFieldValue(HttpCommandExecutor.class, "client", HttpClient.class);120    }121    private Response createSession(Command command) throws IOException {122        if (getCommandCodec() != null) {123            throw new SessionNotCreatedException("Session already exists");124        }125        ProtocolHandshake.Result result = new AppiumProtocolHandshake().createSession(126                getClient().with((httpHandler) -> (req) -> {127                    req.setHeader(IDEMPOTENCY_KEY_HEADER, UUID.randomUUID().toString().toLowerCase());128                    return httpHandler.execute(req);129                }), command130        );...EventFiringAppiumCommandExecutor.java
Source:EventFiringAppiumCommandExecutor.java  
...87        } catch (NoSuchFieldException | IllegalAccessException e) {88            throw new WebDriverException(e);89        }90    }91    private void setPrivateFieldValue(String fieldName, Object newValue) {92        try {93            final Field f = getClass().getSuperclass().getDeclaredField(fieldName);94            f.setAccessible(true);95            f.set(this, newValue);96        } catch (NoSuchFieldException | IllegalAccessException e) {97            throw new WebDriverException(e);98        }99    }100    private Map<String, CommandInfo> getAdditionalCommands() {101        // noinspection unchecked102        return getPrivateFieldValue("additionalCommands", Map.class);103    }104    private CommandCodec<HttpRequest> getCommandCodec() {105        // noinspection unchecked106        return getPrivateFieldValue("commandCodec", CommandCodec.class);107    }108    private void setCommandCodec(CommandCodec<HttpRequest> newCodec) {109        setPrivateFieldValue("commandCodec", newCodec);110    }111    @Override112    public Response execute(Command command) throws WebDriverException {113        if (DriverCommand.NEW_SESSION.equals(command.getName())) {114            serviceOptional.ifPresent(driverService -> {115                try {116                    driverService.start();117                } catch (IOException e) {118                    throw new WebDriverException(e.getMessage(), e);119                }120            });121        }122        Response response;123        try {...CustomAppiumCommandExecutor.java
Source:CustomAppiumCommandExecutor.java  
...79        CommandCodec<HttpRequest> commandCodec = agentClient.getSession().getDialect().getCommandCodec();80        if (commandCodec instanceof W3CHttpCommandCodec) {81            commandCodec = new AppiumW3CHttpCommandCodec();82        }83        DriverHelper.setPrivateFieldValue(this, FIELD_COMMAND_CODEC, commandCodec);84        DriverHelper.setPrivateFieldValue(this, FIELD_RESPONSE_CODEC,85                agentClient.getSession().getDialect().getResponseCodec());86        getAdditionalCommands().forEach(this::defineCommand);87    }88    @Override89    public Response execute(final Command command) throws WebDriverException {90        return execute(command, false);91    }92    /**93     * Extended command execution method.94     * Allows skipping reporting for "internal" commands, for example:95     * - Taking screenshot for manual step reporting.96     * - Inspecting element type to determine whether redaction is required.97     * @param command       Command to execute98     * @param skipReporting Flag to control reporting...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
