使用Appium Android Native应用程序-如何向下滚动并在屏幕上选择右元素?

时间:2019-04-15 15:51:18

标签: java android appium-android

环境:

  • Appium Java客户端v7.0.0
  • plattformName:Android
  • deviceName:Android模拟器
  • platformVersion:8.1.0
  • appPackage:com.makemytrip
  • appActivity:com.mmt.travel.app.home.ui.SplashActivity
  • Selenium java-client v3.141.59
  • 用于Java开发人员的Eclipse IDE v2018-09(4.9.0)

我正在尝试使用Java在Eclipse中运行我的Flight Search例程脚本,以测试Android Native应用。为了选择From date为2019年9月16日和To date为2019年10月20日。我编写了以下代码行:

String fromStr = "August 2019";

driver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\""+fromStr+"\").instance(0))");

String fromDate = "16";

List<WebElement> date = driver.findElements(By.id("com.makemytrip:id/calendar_day"));

for (int j=0; j<date.size(); j++) {

if (date.get(j).getText().equals(fromDate)) {
date.get(j).click();
System.out.println("Date selected is: "+fromDate);
break;
    }
}

String toStr = "September 2019";

driver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\""+toStr+"\").instance(0))");

//Selecting To date in a calendar
String toDate = "20";

date = driver.findElements(By.id("com.makemytrip:id/calendar_day"));

for (int k=0; k<date.size(); k++) {

  if (date.get(k).getText().equals(toDate)) {
 date.get(k).click();
     System.out.println("Date selected is: "+toDate);
 break;
  }
}

每次运行代码时,它都会从当月(即2019年4月)向下滚动,并在错误的月份(例如:2019年6月/ 2019年7月)停止,并选择同一月的日期(例如:16日和20日) 。

我在做什么错了?

0 个答案:

没有答案