BaseClass:
package WaleedAppium.TapTapMeasure;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.testng.annotations.BeforeClass;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.options.UiAutomator2Options;
public class baseTest {
public AndroidDriver driver;
@BeforeClass
public AndroidDriver ConfigureAppium() throws MalformedURLException
{
UiAutomator2Options options = new UiAutomator2Options();
options.setPlatformVersion(“12.0”);
options.setPlatformName(“android”);
options.setDeviceName(“Pixel 5”);
options.setAppPackage(“com.photogauge.masterapp”);
options.setAppActivity(“com.photogauge.masterapp.ui.presenter.splash.LauncherActivity”);
options.setApp("/Users/mac/eclipse-workspace/TapTapMeasure/src/test/java/resources//Tap Tap MEASURE android.apk");
options.setCapability(“autoGrantPermissions”, true );
AndroidDriver driver = new AndroidDriver( new URL(“http://127.0.0.1:4723/”),options);
return driver;}
}
Child Class:
package WaleedAppium.TapTapMeasure;
import org.openqa.selenium.By;
import org.testng.annotations.Test;
import java.net.MalformedURLException;
import java.util.concurrent.TimeUnit;
public class AppiumBasics extends baseTest {
public void AppiumTest() throws MalformedURLException, Exception {
driver.manage().timeouts().implicitlyWait(10, TimeUnit. SECONDS );
driver.findElement(By. id (“com.photogauge.masterapp:id/EditText_username”)).sendKeys("[email protected]");
driver.findElement(By. id (“com.photogauge.masterapp:id/EditText_password”)).sendKeys(“123456”);
driver.findElement(By. id (“com.photogauge.masterapp:id/Button_login”)).click();
driver.findElement(By. id (“com.photogauge.masterapp:id/Button_record”)).click();
driver.findElement(By. id (“com.photogauge.masterapp:id/Button_next”)).click();
driver.findElement(By. id (“com.android.camera2:id/shutter_button”)).click();
Thread. sleep (10);
driver.findElement(By. id (“com.android.camera2:id/shutter_button”)).click();
}
}
Logs:
[RemoteTestNG] detected TestNG version 7.6.0
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.
FAILED: WaleedAppium.TapTapMeasure.AppiumBasics.AppiumTest
java.lang.NullPointerException
at WaleedAppium.TapTapMeasure.AppiumBasics.AppiumTest(AppiumBasics.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:677)
at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:221)
at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:962)
at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:194)
at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at org.testng.TestRunner.privateRun(TestRunner.java:806)
at org.testng.TestRunner.run(TestRunner.java:601)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:433)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:427)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:387)
at org.testng.SuiteRunner.run(SuiteRunner.java:330)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)
at org.testng.TestNG.runSuites(TestNG.java:1099)
at org.testng.TestNG.run(TestNG.java:1067)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)