我有一种情况,就像我正在使用 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/