Appium: "An element could not be located on the page using the given search parameters" error

33,366

Solution 1

I would use driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); instead of Thread.sleep(5000).

Try to use a newer version of Appium, I's been improved a lot. You can download the latest version of Appium and Appium clients here:http://appium.io/downloads.html

But be careful because in the newer version the findElement throws an Exception if there are more then one result of the search.


I would write this in a comment but I've not enough reputation :/

Solution 2

Possible Cause:

  • Multiple EditText in the current screen.

Please try with the following:

Solution1:

List<WebElement> editText = driver.findElements(By.className("android.widget.EditText"));
editText.get(0).sendKeys("123");

0 - Index of EditText

Solution2:

Use any other locating strategy like Xpath.

Solution 3

Maybe you could try waiting until the element is visible or enabled using a WebDriverWait object?

Share:
33,366
Admin
Author by

Admin

Updated on July 19, 2022

Comments

  • Admin
    Admin almost 2 years

    I am new to Appium and have been trying to automate the Conversion Calculator app for Android. Am getting the error "org.openqa.selenium.NoSuchElementException: An element could not be located on the page using the given search parameters", when trying to find a EditText element. Using Appium ver 1.0.0 and Android 4.3

    The following is my code:

    List<WebElement> textViews = driver.findElements(By.className("android.widget.TextView"));
    for (i=0; i<textViews.size(); i++) {
      if(textViews.get(i).getText().toLowerCase().contains("memory")) {
        textViews.get(i).click();
      }
    } 
    Thread.sleep(5000);
    
    WebElement editText = driver.findElement(By.className("android.widget.EditText"));
    editText.sendKeys("123");
    

    Even findElement by ID is not working. Please let me know what I am doing wrong here or if I need to provide more details.

  • Emna Ayadi
    Emna Ayadi about 8 years
    I have the same problem while using appium with protractor, shall i also add sleep(10000); for example ? i'm using the latest version of appium with ipad simulator in mac
  • stsatlantis
    stsatlantis about 8 years
    using the thread.sleep is not recommended, do you have any luck with the driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); approach?