'Not able to Start appium service from java code
Not able to start appium from code made a function and called before desired capability, post desired capability. Getting error while running below code: C:\Users\Ritesh Mittal\AppData\Roaming\npm\node_modules\appium\lib\appium.js:1 import _ from 'lodash'; ^^^^^^
SyntaxError: Cannot use import statement outside a module at Object.compileFunction (node:vm:352:18)
//Option 1
public static void runAppiumService(String portNumber) {
//Build parameters for appium server:
AppiumServiceBuilder appiumServiceBuilder = new AppiumServiceBuilder();
appiumServiceBuilder.usingPort(Integer.parseInt(portNumber))
.withIPAddress("127.0.0.1")
.withAppiumJS(new File("C:\\Users\\Ritesh Mittal\\AppData\\Roaming\\npm\\node_modules\\appium\\lib\\appium.js"))
.withArgument(GeneralServerFlag.SESSION_OVERRIDE)
.withLogFile(new File(System.getProperty("user.dir") + "/target/resources/appium_server_logs" + Thread.currentThread().getId()));
AppiumDriverLocalService service = AppiumDriverLocalService.buildService(appiumServiceBuilder);
service.start();
}
//Option 2
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(MobileCapabilityType.DEVICE_NAME, deviceName);
//dc.setCapability(MobileCapabilityType.PLATFORM_VERSION,platformVersion);
dc.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
dc.setCapability(MobileCapabilityType.APP, System.getProperty("user.dir")+"/src/test/resources/apps/CRMNextNative 6.29.0-release_screenshot_enabled.apk");
dc.setCapability("automationName","UiAutomator2");
dc.setCapability("appPackage", "com.crmnextmobile.crmnextofflineplay");
dc.setCapability("appActivity", "com.crmnextmobile.crmnextofflineplay.qr.QrScannerActivity");
dc.setCapability("enforceAppInsall", true);
URL url = new URL("http://127.0.0.1:"+portNumber+"/wd/hub");
AppiumDriverLocalService service;
service = AppiumDriverLocalService.buildService(new AppiumServiceBuilder()
.usingPort(Integer.parseInt(portNumber))
.usingDriverExecutable(new File("C:\\Program Files\\nodejs\\node.exe"))
.withAppiumJS(new File("C:\\Users\\Ritesh Mittal\\AppData\\Roaming\\npm\\node_modules\\appium\\lib\\appium.js"))
.withArgument(GeneralServerFlag.RELAXED_SECURITY)
.withArgument(GeneralServerFlag.SESSION_OVERRIDE)
.withArgument(GeneralServerFlag.LOG_LEVEL, "error")
.withCapabilities(dc));
service.start();
logger.info("Appium started ......");
Thread.sleep(10000);
driver = new AppiumDriver(url,dc);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
System.out.println("CRMNext automation start..");
Solution 1:[1]
please try this code:
public void startServer() throws IOException, InterruptedException {
Properties prop = new Properties();
InputStream input = null;
input = getClass().getClassLoader().getResourceAsStream("config.properties");
try {
prop.load(input);
} catch (IOException e) {
e.printStackTrace();
}
Map<String, String> env = new HashMap<>(System.getenv());
env.put("PATH", prop.getProperty("Local_Path") + env.get("PATH"));
env.put("ANDROID_HOME", prop.getProperty("Android_Home"));
int port = Integer.parseInt(prop.getProperty("port"));
System.out.println("port--> "+port);
service = AppiumDriverLocalService.buildService(
new AppiumServiceBuilder().usingDriverExecutable(new File(prop.getProperty("DriverExecutable")))
.withAppiumJS(new File(prop.getProperty("AppiumJS"))).withIPAddress(prop.getProperty("IP"))
.usingPort(port).withLogFile(new File("AppiumLog.text")).withEnvironment(env));
service.start();
Thread.sleep(20000);
}
Solution 2:[2]
I solved it. I was doing two mistakes
Appium Path was not correct. Incorrect path was builder.withAppiumJS(new File("C:\Users\Ritesh Mittal\AppData\Roaming\npm\node_modules\appium\lib\appium.js")); corrected: builder.withAppiumJS(new File("C:\Users\Ritesh Mittal\AppData\Roaming\npm\node_modules\appium"));
added arguments builder.withArgument(() -> "--base-path", "/wd/");
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | rakeshsahu59 |
Solution 2 | mittalri |