Creating own Customised MobileElement by extending from MobileElement









up vote
2
down vote

favorite












I am trying to have own customized MobileElement class that i can add more methods.
For example I have a class named SamplePage and it contains below mobile element:



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


I use it in test case lets say as below:



 samplePage.SettingsButton.click();


What I want to have is as below



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


A test case with IsVisible() method or CopyText() method I have in customisedMobileElement class:



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


Could you please share your ideas about how to do it?










share|improve this question



























    up vote
    2
    down vote

    favorite












    I am trying to have own customized MobileElement class that i can add more methods.
    For example I have a class named SamplePage and it contains below mobile element:



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


    I use it in test case lets say as below:



     samplePage.SettingsButton.click();


    What I want to have is as below



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


    A test case with IsVisible() method or CopyText() method I have in customisedMobileElement class:



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


    Could you please share your ideas about how to do it?










    share|improve this question

























      up vote
      2
      down vote

      favorite









      up vote
      2
      down vote

      favorite











      I am trying to have own customized MobileElement class that i can add more methods.
      For example I have a class named SamplePage and it contains below mobile element:



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


      I use it in test case lets say as below:



       samplePage.SettingsButton.click();


      What I want to have is as below



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


      A test case with IsVisible() method or CopyText() method I have in customisedMobileElement class:



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


      Could you please share your ideas about how to do it?










      share|improve this question















      I am trying to have own customized MobileElement class that i can add more methods.
      For example I have a class named SamplePage and it contains below mobile element:



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


      I use it in test case lets say as below:



       samplePage.SettingsButton.click();


      What I want to have is as below



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


      A test case with IsVisible() method or CopyText() method I have in customisedMobileElement class:



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


      Could you please share your ideas about how to do it?







      java appium pageobjects page-factory






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 9 at 15:14









      Bill Hileman

      1,9902617




      1,9902617










      asked Nov 9 at 8:32









      Random

      112




      112






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          First define the page as follow:



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




          Then you can use this as following:



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

          }





          share|improve this answer




















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













             

            draft saved


            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53222227%2fcreating-own-customised-mobileelement-by-extending-from-mobileelement%23new-answer', 'question_page');

            );

            Post as a guest






























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote













            First define the page as follow:



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




            Then you can use this as following:



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

            }





            share|improve this answer
























              up vote
              0
              down vote













              First define the page as follow:



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




              Then you can use this as following:



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

              }





              share|improve this answer






















                up vote
                0
                down vote










                up vote
                0
                down vote









                First define the page as follow:



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




                Then you can use this as following:



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

                }





                share|improve this answer












                First define the page as follow:



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




                Then you can use this as following:



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

                }






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 9 at 16:56









                Suban Dhyako

                485112




                485112



























                     

                    draft saved


                    draft discarded















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53222227%2fcreating-own-customised-mobileelement-by-extending-from-mobileelement%23new-answer', 'question_page');

                    );

                    Post as a guest














































































                    Popular posts from this blog

                    Darth Vader #20

                    How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

                    Ondo