Создание собственного Настроенного MobileElement путем расширения от MobileElement - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь создать собственный настроенный класс MobileElement, чтобы добавить дополнительные методы. Например, у меня есть класс с именем SamplePage, и он содержит ниже мобильный элемент:

  @iOSFindBy(accessibility = "Settings")
  @AndroidFindBy(id = "Settings")
  public MobileElement SettingsButton;

Я использую его в тестовом примере, скажем так:

  samplePage.SettingsButton.click();

То, что я хочу иметь, это как показано ниже

   @iOSFindBy(accessibility = "Settings")
   @AndroidFindBy(id = "Settings")
   public customisedMobileElement SettingsButton;

Тестовый пример с методом IsVisible () или методом CopyText (), который есть в классе customizedMobileElement:

   Assert.isTrue(samplePage.SettingsButton.IsVisible(), "not visible");
   samplePage.LoginTextInput.CopyText();

Не могли бы вы поделиться своими идеями о том, как это сделать?

1 Ответ

0 голосов
/ 09 ноября 2018

Сначала определите страницу следующим образом:

public class SettingPage{       

    @AndroidFindBy(accessibility = "Settings")
    @iOSFindBy(accessibility = "Settings")
    private MobileElement setting;

    public SettingPage(AppiumDriver<MobileElement> driver) {
        PageFactory.initElements(new AppiumFieldDecorator(driver), this);
    }

    public boolean isScreenDisplayed(){
        try {
            return setting.isDisplayed();
        }catch (Exception e){
            return false;
        }
    }

    public void click(){
         setting.click();
    }
}

Тогда вы можете использовать это следующим образом:

public class Test(){
  AppiumDriver<MobileElement> driver;

  //define your desiredCapabilities and appium driver

  private SettingPage settingPage;

  public void displayTest(
   settingPage= new SettingPage(driver);
   settingPage.isScreenDisplayed();
  }

  public void clickTest(
   settingPage= new SettingPage(driver);
   settingPage.click();
  }

}
...