【发布时间】:2020-02-20 15:11:53
【问题描述】:
我正在尝试向 Android 应用中的搜索文本框发送一些文本,但它一直返回 NoSuchElement 异常。
以下是从Appium的元素定位器中获取到的元素的属性。
以下是将文本发送到搜索框的代码。
driver_App.findElement(By.xpath("//android.widget.EditText[@content-desc='Search']")).sendKeys("ABC");
我已经通过 id 尝试过
driver_App.findElement(By.id("header-search")).sendKeys("ABC");
按类名
driver_App.findElement(By.className("android.widget.EditText")).sendKeys("ABC");
在一定程度上,如下:
new WebDriverWait(driver_App, 30).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='header-search']")));
driver_App.findElement(By.xpath("//*[@id='header-search']")).sendKeys("ABC");
以上都无法将字符串“ABC”发送到文本框元素,并返回 NoSuchElement 异常。
希望对我可能做错的事情和可能的解决方案提出建议。
注意: 为元素搜索添加了以下完整树结构的屏幕截图。
【问题讨论】:
-
driver_App.findElementByAccessibilityId("Search").sendText("...");怎么样? -
嗨@Vault23,我已经尝试了你的建议,很遗憾地报告它也没有奏效。如果我使用 ,sendKeys() 和 .sendText() 有什么区别吗?
-
我混淆了方法名称,
sendKeys()是正确的。在这种情况下,我建议特定定位器有问题。您能否为这个元素粘贴整棵树,以便我们能够看到它的完整路径? -
@Vault23我附上了 UIAutomator 的截图。希望这会有所帮助。
-
这很奇怪,我看到的唯一区别是 long-clickable 属性设置为 false(与其他应用程序中的一些随机文本字段相比)。因此,我建议您将应用程序的其他一些文本字段的属性与该属性进行比较。
标签: java android selenium appium