java - 无法将文本发送到文本框元素
问题描述
我正在尝试将一些文本发送到 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 异常。
希望对我可能做错的事情和可能的解决方案有建议。
注意:为元素搜索添加了以下完整树结构的屏幕截图。
解决方案
将字符串发送到移动设备中的文本字段的方法很少。
一些android文本需要先点击。
new WebDriverWait(driver_App, 30).until(ExpectedConditions.presenceOfElementLocated(By.id("header-search")));
driver_App.findElement (By.id("header-search")).click();
driver_App.findElement (By.id("header-search")).sendKeys ("ABC");
推荐阅读
- google-chrome - 为什么 Chrome 不使用 Xpath 突出显示 Elements 中的元素
- vue.js - vue中如何在不调用下拉事件的change事件的情况下从下拉列表中删除一个项目
- php - Facebook 共享 SDK 不适用于 Mozilla Firefox 隐身浏览器
- python - 为什么 Python 字符串格式看起来不一样?
- reactjs - 在 React Native 上导航到主屏幕时出错
- python - 如何使功能在某个时间开始
- vb.net - REST 请求使用 HTTPWebResponse 不会带来任何结果
- google-apps-script - 您如何允许在 Google Data Studio 中替换 API 密钥?
- node.js - Having to send SIGINT multiple times for Puppeteer script to close
- python - 如何仅在 python unittest 补丁装饰器中返回值