package com.wadhwani.common;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Date;
import java.util.Properties;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.TimeUnit;
import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecuteResultHandler;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.log4j.Logger;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.*;
import com.wadhwani.pages.Loginpage;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.*;
public class AppUtil{
private static Process process;
public static AndroidDriver driver;
public static Properties config = null;
public static Logger log = Logger.getLogger(“deployingLogger”);
static TimerTask task=new TimerTask(){
@Override public void run(){
InputStream inStream=null;OutputStream outStream=null;
try{
String workingDir = System.getProperty("user.dir");
File afile=new File("/tmp/appium.log");
File bfile=new File(workingDir+"/Resources/logs/Appium.log");
inStream=new FileInputStream(afile);outStream=new FileOutputStream(bfile);
byte[]buffer=new byte[1024];
int length;
while((length=inStream.read(buffer))>0){
outStream.write(buffer,0,length);
}
inStream.close();
outStream.close();
}catch(IOException e){e.printStackTrace();}}};
@BeforeSuite
public void AppUtil()
{
try{
config = new Properties();
FileInputStream fs;
fs = new FileInputStream(System.getProperty("user.dir")+"//src//test//java//com//wadhwani//common//Config.properties");
config.load(fs);
}
catch(Exception e) {
e.printStackTrace();
}
}
@BeforeMethod
public static void setUpAndroid() throws Exception {
if (config.getProperty("appTest").equals("Device"))
{
log.debug("Loding the Android device capabalities");
String workingDir = System.getProperty("user.dir");
File app = new File(workingDir+config.getProperty("buildpathD"));
System.out.println(app);
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("automationName", config.getProperty("automationName"));
capabilities.setCapability("device",config.getProperty("device"));
capabilities.setCapability("deviceName", config.getProperty("deviceName"));
capabilities.setCapability("platformVersion", config.getProperty("platformVersion"));
capabilities.setCapability("platformName", config.getProperty("platformName"));
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("activityname",config.getProperty(""));
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),
capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
}
else if(config.getProperty("appTest").equals("Emulator"))
{
String workingDir = System.getProperty("user.dir");
System.out.println(workingDir);
File app = new File(workingDir+config.getProperty("buildpathE"));
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("automationName", config.getProperty("automationNameE"));
capabilities.setCapability("device",config.getProperty("deviceE"));
capabilities.setCapability("deviceName",config.getProperty("deviceNameE"));
capabilities.setCapability("platformVersion", config.getProperty("platformVersionE"));
capabilities.setCapability("platformName", config.getProperty("platformNameE"));
capabilities.setCapability("app", app.getAbsolutePath());
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),
capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
}
}
@AfterMethod
public void teardown() throws IOException, InterruptedException {
driver.closeApp();
driver.quit();
}
}
ERROR:Session ID is null. Using WebDriver after calling quit()?
This is my base class file, but i want to start the new session after every method. could u please help me on this