Как фабрика Appium Page выберет правильный xpath, когда определены оба Android & IOS Xpath - PullRequest
0 голосов
/ 06 марта 2020

Я новичок в Appium и планировал использовать фабрику страниц Appium для выполнения моего теста с одним и тем же сценарием в android и IOS. В настоящее время я работаю на устройстве Android, поэтому я сохраняю IOS xpath как null, когда я выполняю свой скрипт, он выдает ошибку «userNameTextBox = null». У меня есть два вопроса здесь 1. На основании каких критериев фабрика страниц Appium будет знать, какой xpath выбрать android или IOS 2. Почему в моем коде выдается «userNameTextBox as Null», хотя я использую драйвер Android.

 private AndroidDriver<AndroidElement> driver;

    @AndroidFindBy(className = "android.widget.EditText")
    @iOSBy(className = "")
    private AndroidElement userNameTextBox;


  public void login(String userName, String password) throws InterruptedException {
        userNameTextBox.sendKeys(userName);
}


public static void main(String[] args) throws IOException, InvalidFormatException, InterruptedException {
        LaunchApplication.launchApp("samsungtablet");--This code will launch the app based on device passed
        LoginPage lp= new LoginPage();


        lp.login("test", "test");---Failing here 

}

1 Ответ

0 голосов
/ 06 марта 2020

Ранее приложение не устанавливало экземпляр драйвера правильно, в результате чего я получал значение xpath как ноль, я добавил ниже функцию для вызова драйвера из класса launchapplication, и она работала с этим.

public void login(String userName, String password) throws InterruptedException {
 this.driver = LaunchApplication.driver;
         PageFactory.initElements(new AppiumFieldDecorator(driver), this);

        userNameTextBox.sendKeys(userName);
}
...