在Appium中,可以使用MobileSelector
类来处理日历日期选择器。下面是一个示例代码,用于选择特定日期:
import io.appium.java_client.MobileBy;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.MobileCapabilityType;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.MalformedURLException;
import java.net.URL;
public class CalendarDatePickerExample {
public static void main(String[] args) throws MalformedURLException {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
caps.setCapability(MobileCapabilityType.DEVICE_NAME, "deviceName");
caps.setCapability(MobileCapabilityType.APP, "path/to/your/app.apk");
AndroidDriver driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), caps);
// 找到日期选择器的元素
AndroidElement datePicker = driver.findElement(MobileBy.AndroidUIAutomator(
"new UiSelector().className(\"android.widget.DatePicker\")"));
// 选择年份
AndroidElement yearPicker = datePicker.findElement(MobileBy.AndroidUIAutomator(
"new UiSelector().className(\"android.widget.NumberPicker\").instance(0)"));
yearPicker.sendKeys("2022");
// 选择月份
AndroidElement monthPicker = datePicker.findElement(MobileBy.AndroidUIAutomator(
"new UiSelector().className(\"android.widget.NumberPicker\").instance(1)"));
monthPicker.sendKeys("5");
// 选择日期
AndroidElement dayPicker = datePicker.findElement(MobileBy.AndroidUIAutomator(
"new UiSelector().className(\"android.widget.NumberPicker\").instance(2)"));
dayPicker.sendKeys("15");
// 点击确定按钮
By doneButton = MobileBy.AndroidUIAutomator(
"new UiSelector().resourceIdMatches(\".*id/button1\")");
driver.findElement(doneButton).click();
// 关闭驱动
driver.quit();
}
}
请注意,上述示例代码假设您已经配置了Appium环境,并已将Appium服务器启动在http://localhost:4723
。您需要根据自己的实际情况进行相应的修改和调整。