当前位置: 首页 > 知识库问答 >
问题:

Appium:“无法使用给定的搜索参数在页面上定位元素”错误

壤驷承
2023-03-14

我是Appium的新手,一直在尝试将Android的转换计算器应用程序自动化。试图查找EditText元素时,我收到错误“org.openqa.selenium.NoSuchElementException:使用给定的搜索参数无法在页面上找到元素”。使用Appium 1.0.0版和Android 4.3

以下是我的代码:

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

甚至按ID查找也不起作用。请让我知道我在这里做错了什么,或者如果我需要提供更多细节。

共有3个答案

龚德本
2023-03-14

也许您可以尝试使用WebDriverWait对象等待元素可见或启用?

穆洋
2023-03-14

可能原因:

  • 当前屏幕中的多个EditText。

请尝试以下操作:

解决方案1:

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

0-EditText的索引

解决方案2:

使用任何其他定位策略,如Xpath。

卢德惠
2023-03-14

我会使用驱动程序。管理()。超时()。隐式等待(10,时间单位秒) 而不是线程。睡眠(5000)。

尝试使用更新版本的Appium,我已经得到了很大的改进。您可以在此处下载最新版本的Appium和Appium客户端:http://appium.io/downloads.html

但要小心,因为在较新版本中,如果搜索结果不止一个,findElement会引发异常。

我会在评论中写下这句话,但我没有足够的声誉:/

 类似资料: