2

我正在尝试拥有自己的自定义 MobileElement 类,我可以添加更多方法。例如,我有一个名为 SamplePage 的类,它包含以下移动元素:

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

我在测试用例中使用它让我们说如下:

  samplePage.SettingsButton.click();

我想要的如下

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

我在 customisedMobileElement 类中使用 IsVisible() 方法或 CopyText() 方法的测试用例:

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

你能分享你的想法吗?

4

1 回答 1

0

首先定义页面如下:

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();
  }

}
于 2018-11-09T16:56:55.800 回答