Hello, I would appreciate if someone could help me with this test. It loads up the app but fail to perform the tasks in @Test. It appears it’s not initialising the testLogin() . Thank you
package EverSmart_POF;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.PageFactory;
import org.testng.annotations.BeforeSuite;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.pagefactory.AndroidFindBy;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
import io.appium.java_client.remote.MobileCapabilityType;
import io.appium.java_client.remote.MobilePlatform;
public class LogInJourney {
protected AndroidDriver driver;
public LogInJourney(AppiumDriver driver) {
//This is a constructor, as every page need a base driver to find web elements
this.driver = (AndroidDriver) driver;
PageFactory.initElements(new AppiumFieldDecorator(driver, 5, TimeUnit.SECONDS), this);
}
//@AndroidFindBy(xpath = "//android.widget.Button[@text = 'Log in' and @clickable='true']")
//public WebElement SignInButton;
@AndroidFindBy(id = "")
public WebElement SignInButton;
@AndroidFindBy(id = "")
public WebElement Username;
@AndroidFindBy(id = "")
public WebElement Password;
@AndroidFindBy(id = "")
public WebElement CheckBox;
@AndroidFindBy(id = "")
public WebElement ClickSignIn;
public WebElement SignInButton ()
{
return SignInButton;
}
public WebElement Username ()
{
return Username;
}
public WebElement Password ()
{
return Password;
}
public WebElement CheckBox ()
{
return CheckBox;
}
public WebElement ClickSignIn () {
return ClickSignIn;
}
}
package EverSmart_POF;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import io.appium.java_client.remote.MobilePlatform;
import EverSmart_POF.LogInJourney;
// Specify the file location I used .operation here because we have object repository inside project directory only
// File src=new File(".Object_Repo.properties");
// Create FileInputStream object
//FileInputStream fis=new FileInputStream(src);
// Create Properties class object to read properties file
//Properties pro=new Properties();
// Load file so we can use into our script
//pro.load(fis);
public class LoginTest {
AppiumDriver driver;
private LogInJourney loginPage;
@BeforeSuite
public static void setUp () throws MalformedURLException
{
File appDir=new File("src");
File app = new File(appDir,"base.apk");
DesiredCapabilities cap=new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_NAME,MobilePlatform.ANDROID);
cap.setCapability(MobileCapabilityType.DEVICE_NAME,"Android Emulator");
cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 100);
cap.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
AndroidDriver driver = new AndroidDriver (new URL ("http://127.0.0.1:4723/wd/hub"),cap);
driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);
}
@Test
public void testLogin() throws InterruptedException
{
loginPage = new LogInJourney(driver);
Thread.sleep(13000L);
loginPage.SignInButton().click();
loginPage.Username().sendKeys("");
loginPage.Password().sendKeys("");
loginPage.CheckBox().click();
loginPage.ClickSignIn().click();
System.out.println("Login Successful");
}
}