Reputation: 1
this is my appdriver class public class Appdrivers {
private static ThreadLocal<WebDriver> driver = new ThreadLocal<>();
public static WebDriver getDriver(){
return driver.get();
}
public static void setDriver(WebDriver Driver){
driver.set(Driver);
}
}
this is my page object class public class Login extends Baseclass {
@FindBy(xpath = "//input[@placeholder='Enter Username']")
public WebElement username;
@FindBy(xpath = "(//*[@name='password'])[2]")
public WebElement password;
@FindBy(xpath = "//*[@type='submit']")
public WebElement login;
public Login() {
try {
PageFactory.initElements(new AppiumFieldDecorator(Appdrivers.getDriver()), this);
} catch (Exception e) {
e.printStackTrace();
}
this is my base class public class Baseclass extends Appdrivers{
public static AndroidDriver<MobileElement> driver;
public void launchIFMIS() {
String androidVersion = "13";
String deviceName = "IFMIS";
String platformName = "Android";
try {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("VERSION", androidVersion);
capabilities.setCapability("deviceName", deviceName);
capabilities.setCapability("platformName", platformName);
capabilities.setCapability("appPackage", "com.pixelvide.ifmis.finance");
capabilities.setCapability("autoGrantPermissions", true);
capabilities.setCapability("appActivity", "com.pixelvide.ifmis.finance.MainActivity");
driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
Appdrivers.setDriver(driver);
Set<String> contextNames = driver.getContextHandles();
for (@SuppressWarnings("unused") String contextName : contextNames) {
// System.out.println(contextName); //prints out something like NATIVE_APP \n
// WEBVIEW_1
}
driver.context((String) contextNames.toArray()[1]);
} catch (Exception e) {
Reporter.log(e.getMessage());
}
}
Facing below issue
java.lang.ExceptionInInitializerError
at io.appium.java_client.pagefactory.utils.ProxyFactory.getEnhancedProxy(ProxyFactory.java:53)
at io.appium.java_client.pagefactory.utils.ProxyFactory.getEnhancedProxy(ProxyFactory.java:33)
at io.appium.java_client.pagefactory.AppiumFieldDecorator.proxyForAnElement(AppiumFieldDecorator.java:216)
at io.appium.java_client.pagefactory.AppiumFieldDecorator.access$0(AppiumFieldDecorator.java:214)
at io.appium.java_client.pagefactory.AppiumFieldDecorator$1.proxyForLocator(AppiumFieldDecorator.java:107)
at org.openqa.selenium.support.pagefactory.DefaultFieldDecorator.decorate(DefaultFieldDecorator.java:62)
at io.appium.java_client.pagefactory.AppiumFieldDecorator.decorate(AppiumFieldDecorator.java:154)
at org.openqa.selenium.support.PageFactory.proxyFields(PageFactory.java:113)
at org.openqa.selenium.support.PageFactory.initElements(PageFactory.java:105)
at pfs.Login.<init>(Login.java:27)
at pfs.Login_Test.login(Login_Test.java:12)
Upvotes: 0
Views: 85