Hi @Aleksei,
We decided to use two diff devices to run both of our apps. I have tried with following code, can you pls suggest me what things are missing here?
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.time.Duration;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import io.appium.java_client.AppiumBy;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.service.local.AppiumDriverLocalService;
import io.appium.java_client.service.local.AppiumServiceBuilder;
import io.appium.java_client.service.local.flags.GeneralServerFlag;
public class BaseClass {
public static AppiumDriverLocalService service;
public static String nodeExePath = "C:\\Program Files\\nodejs\\node.exe";
public static String nodeJsMainPath = "C:\\Users\\ptmco\\AppData\\Roaming\\npm\\node_modules\\appium\\build\\lib\\main.js";
public static String serverAddress = "127.0.0.1";
public AndroidDriver driver, driver1;
public String rideOtp = "";
public void startAppiumServer(String portNumber) throws MalformedURLException, InterruptedException {
service = AppiumDriverLocalService.buildService(new AppiumServiceBuilder().usingDriverExecutable
(new File(nodeExePath)).withAppiumJS(new File(nodeJsMainPath)).withIPAddress(serverAddress).withArgument(GeneralServerFlag.BASEPATH, "/wd/hub")
.usingPort(Integer.parseInt(portNumber)).withLogFile(new File("C:\\Users\\ptmco\\Desktop\\AppiumServerLog.txt")));
service.start();
System.out.println("Appium Server Started with port "+portNumber);
}
@Parameters({"deviceName","portNumber","udid","app"})
@BeforeTest
public void launchApp(String deviceName, String portNumber, String udid, String app) throws MalformedURLException, InterruptedException {
startAppiumServer(portNumber);
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("platformName", "Android" );
cap.setCapability("deviceName", deviceName);
cap.setCapability("udid", udid);
cap.setCapability("automationName", "UIAutomator2");
cap.setCapability("fullReset", true);
cap.setCapability("app", app);
driver = new AndroidDriver(new URL("http://127.0.0.1:"+portNumber+"/wd/hub/"), cap);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
DesiredCapabilities cap1 = new DesiredCapabilities();
cap1.setCapability("platformName", "Android" );
cap1.setCapability("deviceName", deviceName); cap1.setCapability("udid","15913008960024W"); cap1.setCapability("automationName", "UIAutomator2");
cap1.setCapability("fullReset", true); //to uninstall the app after testing
cap1.setCapability("app",app);
cap1.setCapability("udid", udid);
cap1.setCapability("automationName", "UIAutomator2");
driver1 = new AndroidDriver(new URL("http://127.0.0.1:"+portNumber+"/wd/hub/"), cap1);
driver1.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
}
@AfterTest
public void tearDown() {
driver.quit();
driver1.quit();
if(service.isRunning()==true) {
service.stop();
System.out.println("Appium Server Stopped !");
}
}
public void scrollToText(String text) {
driver.findElement(new AppiumBy.ByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))"
+ ".scrollIntoView(new UiSelector()" + ".textMatches(\"" +text+ "\").instance(0))"));
}
}