Appium: "An element could not be located on the page using the given search parameters" error
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?
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Admin
Updated on July 19, 2022Comments
-
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 about 8 yearsI 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 about 8 yearsusing the thread.sleep is not recommended, do you have any luck with the
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
approach?