java - 无法单击未聚焦的 EditText 字段

标签 java android selenium-webdriver appium

我有一种情况,就像我正在使用 Appium(1.3.7) 和 Selenium webdriver (2.44) 自动化 native 应用程序,因为我想输入出生日期字段,当我单击出生日期字段时,它会弹出一个窗口来输入出生日期详细信息,该窗口没有焦点,appium 无法在窗口上输入详细信息,因为它无法识别,我无法附加屏幕截图。

请帮助我如何进入焦点并输入出生日期详细信息.. 使用 Google,我尝试了很多方法,例如:

方法:1

List<WebElement> Listed= dr.findElementsByClassName("android.widget.EditText");

   for(int i=0; i <=Listed.size()-1;i++){
   System.out.println("EditText Number="+i);
   Listed.get(i).sendKeys("10");

方法:2

    WebElement Touch1= dr.findElement(By.xpath("//*[@class='android.widget.EditText']"));
//    
       TouchAction action = new TouchAction(dr);
       action.press(168,440);
       action.waitAction(300);
       action.perform();

方法:3

dr.tap(168,440,405,591);

方法:4

WebElement DOBsample = dr.findElementByXPath("//*[text()[contains(.,'20')]]");
DOBsample.click();

方法:5

dr.sendKeyEvent(66);

最佳答案

对于选择器,您必须在其上滑动。我正在使用 Scala,但逻辑很明显:

def setYear(year: Int): Unit = {
require(year >= 1915 || year <= 2015)
val picker = drvr.findElementById("cz.app.yearPicker")
while (picker.getText != year.toString) {
  if (picker.getText.toInt > year) {
     swipePickerDown(picker)
     } else { swipePickerUp(picker) }
  }
}

def swipePickerUp(picker: AndroidElement): Unit = {
  picker.swipe(SwipeElementDirection.UP, 400)
}

def swipePickerDown(picker: AndroidElement): Unit = {
  picker.swipe(SwipeElementDirection.DOWN, 400)
}

关于java - 无法单击未聚焦的 EditText 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29746722/

相关文章:

java - 建立与数据库的连接是什么意思? DriverManager.getConnection 的作用是什么?

android - 如何接收 PlayerNotificationManager 通知按钮的操作,例如停止?

java - 在 Selenium 中获取动态加载的源

java - Apache HttpCore,用于回显接收到的发布数据的简单服务器

java - Codility Brackets 挑战性能问题

android - 工具栏上的图标不会打开抽屉导航,并且在滚动时不会自行消失

c# - Selenium 告诉我 ID 不存在

python - 如何验证文本字段是否具有我输入的值?

java - DateTimeFormat 接受 json 请求中的数字而不是日期格式

android - 无法在当前主题错误中找到样式 'bottomNavigationStyle'