要在Appium中点击动态列表项,你可以使用循环来找到匹配的元素,并执行点击操作。以下是一个示例代码:
// 导入所需的库
import io.appium.java_client.MobileBy;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;
public class AppiumDynamicListItemClick {
public static void main(String[] args) {
// 设置DesiredCapabilities
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("deviceName", "Your_Device_Name");
caps.setCapability("platformName", "Android");
caps.setCapability("appPackage", "Your_App_Package");
caps.setCapability("appActivity", "Your_App_Activity");
try {
// 创建AndroidDriver对象
AndroidDriver driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), caps);
// 循环查找并点击动态列表项
int itemCount = 10; // 假设列表有10个项
for (int i = 1; i <= itemCount; i++) {
// 使用MobileBy的AndroidUIAutomator方法构建动态的定位器
MobileBy locator = MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView("
+ "new UiSelector().text(\"List Item " + i + "\").instance(0))");
// 查找元素
MobileElement listItem = driver.findElement(locator);
// 执行点击操作
listItem.click();
}
// 关闭驱动
driver.quit();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在上面的代码中,我们使用了MobileBy类的AndroidUIAutomator方法,该方法允许使用Android的UI Automator定位器来构建动态的定位器。在循环中,我们使用了列表项的文本进行定位,并依次点击每个列表项。
请确保替换Your_Device_Name
、Your_App_Package
和Your_App_Activity
为你的设备名称、应用程序包和启动活动。
此示例代码假设列表有10个项。如果你的列表项数量不同,你需要相应地更改itemCount
的值。