Appium: “An element could not be located on the pa

2020-08-16 17:29发布

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.

3条回答
放我归山
2楼-- · 2020-08-16 17:36

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 :/

查看更多
Ridiculous、
3楼-- · 2020-08-16 17:51

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

查看更多
三岁会撩人
4楼-- · 2020-08-16 17:54

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.

查看更多
登录 后发表回答