Appium checking if element is displayed











up vote
2
down vote

favorite












I'm using Appium for Android



the following works for clicking on the element



driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).click();


But I am trying to check if an element is on the screen and I tried the following



if (driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).isDisplayed()) {
System.out.println("FOUND");
} else {
System.out.println("NOT FOUND!");
}


but it returns an Exception saying



INFO: HTTP Status: '405' -> incorrect JSON status mapping for 'unknown error' (500 expected)
org.openqa.selenium.WebDriverException: Method is not implemented


How can I check to see if an element is on the screen?










share|improve this question


























    up vote
    2
    down vote

    favorite












    I'm using Appium for Android



    the following works for clicking on the element



    driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).click();


    But I am trying to check if an element is on the screen and I tried the following



    if (driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).isDisplayed()) {
    System.out.println("FOUND");
    } else {
    System.out.println("NOT FOUND!");
    }


    but it returns an Exception saying



    INFO: HTTP Status: '405' -> incorrect JSON status mapping for 'unknown error' (500 expected)
    org.openqa.selenium.WebDriverException: Method is not implemented


    How can I check to see if an element is on the screen?










    share|improve this question
























      up vote
      2
      down vote

      favorite









      up vote
      2
      down vote

      favorite











      I'm using Appium for Android



      the following works for clicking on the element



      driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).click();


      But I am trying to check if an element is on the screen and I tried the following



      if (driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).isDisplayed()) {
      System.out.println("FOUND");
      } else {
      System.out.println("NOT FOUND!");
      }


      but it returns an Exception saying



      INFO: HTTP Status: '405' -> incorrect JSON status mapping for 'unknown error' (500 expected)
      org.openqa.selenium.WebDriverException: Method is not implemented


      How can I check to see if an element is on the screen?










      share|improve this question













      I'm using Appium for Android



      the following works for clicking on the element



      driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).click();


      But I am trying to check if an element is on the screen and I tried the following



      if (driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).isDisplayed()) {
      System.out.println("FOUND");
      } else {
      System.out.println("NOT FOUND!");
      }


      but it returns an Exception saying



      INFO: HTTP Status: '405' -> incorrect JSON status mapping for 'unknown error' (500 expected)
      org.openqa.selenium.WebDriverException: Method is not implemented


      How can I check to see if an element is on the screen?







      appium






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 7 at 2:23









      david

      18610




      18610
























          2 Answers
          2






          active

          oldest

          votes

















          up vote
          1
          down vote



          accepted










          You can try this, hope it helps



          //If the element found, do as you want



          if (driver.findElements(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).size() > 0) {
          System.out.println("FOUND");
          } else {
          System.out.println("NOT FOUND!");
          }





          share|improve this answer






























            up vote
            0
            down vote













            you can surround your code with try catch block.



            public boolean isElementDisplayed(){
            try{
            return driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).isDisplayed();
            }
            }catch(Exception e){
            //System.out.println(e);
            return false;
            }
            }


            you can also make the generic function to check if element is displayed.



            public boolean isElementDisplayed(MobileElement element){
            try{
            return element.isDisplayed();
            }
            }catch(Exception e){
            //System.out.println(e);
            return false;
            }
            }





            share|improve this answer























            • You should use the original poster's example locator in your example. You should also consider that while there should be a try/catch block, you're not checking for specific exceptions, so any exception might be misleading and cause debugging problems under certain circumstances, especially since your example doesn't show any exception handling at all.
              – Bill Hileman
              Nov 7 at 20:52











            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%2f53182813%2fappium-checking-if-element-is-displayed%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            1
            down vote



            accepted










            You can try this, hope it helps



            //If the element found, do as you want



            if (driver.findElements(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).size() > 0) {
            System.out.println("FOUND");
            } else {
            System.out.println("NOT FOUND!");
            }





            share|improve this answer



























              up vote
              1
              down vote



              accepted










              You can try this, hope it helps



              //If the element found, do as you want



              if (driver.findElements(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).size() > 0) {
              System.out.println("FOUND");
              } else {
              System.out.println("NOT FOUND!");
              }





              share|improve this answer

























                up vote
                1
                down vote



                accepted







                up vote
                1
                down vote



                accepted






                You can try this, hope it helps



                //If the element found, do as you want



                if (driver.findElements(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).size() > 0) {
                System.out.println("FOUND");
                } else {
                System.out.println("NOT FOUND!");
                }





                share|improve this answer














                You can try this, hope it helps



                //If the element found, do as you want



                if (driver.findElements(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).size() > 0) {
                System.out.println("FOUND");
                } else {
                System.out.println("NOT FOUND!");
                }






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 9 at 3:59

























                answered Nov 8 at 5:01









                Al Imran

                531415




                531415
























                    up vote
                    0
                    down vote













                    you can surround your code with try catch block.



                    public boolean isElementDisplayed(){
                    try{
                    return driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).isDisplayed();
                    }
                    }catch(Exception e){
                    //System.out.println(e);
                    return false;
                    }
                    }


                    you can also make the generic function to check if element is displayed.



                    public boolean isElementDisplayed(MobileElement element){
                    try{
                    return element.isDisplayed();
                    }
                    }catch(Exception e){
                    //System.out.println(e);
                    return false;
                    }
                    }





                    share|improve this answer























                    • You should use the original poster's example locator in your example. You should also consider that while there should be a try/catch block, you're not checking for specific exceptions, so any exception might be misleading and cause debugging problems under certain circumstances, especially since your example doesn't show any exception handling at all.
                      – Bill Hileman
                      Nov 7 at 20:52















                    up vote
                    0
                    down vote













                    you can surround your code with try catch block.



                    public boolean isElementDisplayed(){
                    try{
                    return driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).isDisplayed();
                    }
                    }catch(Exception e){
                    //System.out.println(e);
                    return false;
                    }
                    }


                    you can also make the generic function to check if element is displayed.



                    public boolean isElementDisplayed(MobileElement element){
                    try{
                    return element.isDisplayed();
                    }
                    }catch(Exception e){
                    //System.out.println(e);
                    return false;
                    }
                    }





                    share|improve this answer























                    • You should use the original poster's example locator in your example. You should also consider that while there should be a try/catch block, you're not checking for specific exceptions, so any exception might be misleading and cause debugging problems under certain circumstances, especially since your example doesn't show any exception handling at all.
                      – Bill Hileman
                      Nov 7 at 20:52













                    up vote
                    0
                    down vote










                    up vote
                    0
                    down vote









                    you can surround your code with try catch block.



                    public boolean isElementDisplayed(){
                    try{
                    return driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).isDisplayed();
                    }
                    }catch(Exception e){
                    //System.out.println(e);
                    return false;
                    }
                    }


                    you can also make the generic function to check if element is displayed.



                    public boolean isElementDisplayed(MobileElement element){
                    try{
                    return element.isDisplayed();
                    }
                    }catch(Exception e){
                    //System.out.println(e);
                    return false;
                    }
                    }





                    share|improve this answer














                    you can surround your code with try catch block.



                    public boolean isElementDisplayed(){
                    try{
                    return driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).isDisplayed();
                    }
                    }catch(Exception e){
                    //System.out.println(e);
                    return false;
                    }
                    }


                    you can also make the generic function to check if element is displayed.



                    public boolean isElementDisplayed(MobileElement element){
                    try{
                    return element.isDisplayed();
                    }
                    }catch(Exception e){
                    //System.out.println(e);
                    return false;
                    }
                    }






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Nov 12 at 6:07

























                    answered Nov 7 at 13:20









                    Suban Dhyako

                    549115




                    549115












                    • You should use the original poster's example locator in your example. You should also consider that while there should be a try/catch block, you're not checking for specific exceptions, so any exception might be misleading and cause debugging problems under certain circumstances, especially since your example doesn't show any exception handling at all.
                      – Bill Hileman
                      Nov 7 at 20:52


















                    • You should use the original poster's example locator in your example. You should also consider that while there should be a try/catch block, you're not checking for specific exceptions, so any exception might be misleading and cause debugging problems under certain circumstances, especially since your example doesn't show any exception handling at all.
                      – Bill Hileman
                      Nov 7 at 20:52
















                    You should use the original poster's example locator in your example. You should also consider that while there should be a try/catch block, you're not checking for specific exceptions, so any exception might be misleading and cause debugging problems under certain circumstances, especially since your example doesn't show any exception handling at all.
                    – Bill Hileman
                    Nov 7 at 20:52




                    You should use the original poster's example locator in your example. You should also consider that while there should be a try/catch block, you're not checking for specific exceptions, so any exception might be misleading and cause debugging problems under certain circumstances, especially since your example doesn't show any exception handling at all.
                    – Bill Hileman
                    Nov 7 at 20:52


















                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53182813%2fappium-checking-if-element-is-displayed%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Xamarin.iOS Cant Deploy on Iphone

                    Glorious Revolution

                    Dulmage-Mendelsohn matrix decomposition in Python