Java 应用程序:如何滑动左侧列表视图项
我有一个android应用程序,其中我的活动包含列表视图。我正在处理自动测试用例,用于滑动删除列表视图项。我编写了以下代码来获取我的列表视图:Java 应用程序:如何滑动左侧列表视图项,java,appium,ui-automation,Java,Appium,Ui Automation,我有一个android应用程序,其中我的活动包含列表视图。我正在处理自动测试用例,用于滑动删除列表视图项。我编写了以下代码来获取我的列表视图: List<WebElement> list = driver.findElements(By.id("com.xyz.email:id/conversation_list_view")); list.get(0).click(); 我有一个名为swipionElement的函数,它可以从右向左滑动项
List<WebElement> list = driver.findElements(By.id("com.xyz.email:id/conversation_list_view"));
list.get(0).click();
我有一个名为swipionElement的函数,它可以从右向左滑动项
Dimension size = driver.manage().window().getSize();
double endX = 0;
double endY = 0;
int elementX = element.getCenter().x;
int elementY = element.getCenter().y;
int finalX;
int finalY;
switch (direction) {
case "left":
endX = size.width;
break;
case "right":
endX = 0;
break;
case "up":
endY = 0;
break;
case "down":
endY = size.height;
break;
}
if (direction == "left" | direction == "right") {
finalX = (int) endX;
finalY = elementY;
} else {
finalX = elementX;
finalY = (int) endY;
}
System.out.println("startY=" + elementY);
System.out.println("startX=" + elementX);
System.out.println("endY=" + finalY);
System.out.println("endX=" + finalX);
new TouchAction(driver)
.press(element)
.waitAction(300)
.moveTo(finalX, finalY)
.release()
.perform();
delay(1000);
这个函数很好。它工作得很好。但当我在列表视图项上尝试它时,它并没有按预期工作。我不知道它为什么会这样。请帮忙 试试看
swipeLeft(MobileElement mobileElement) {
LOGGER.info("Swiping Left ...");
Dimension size = getWindowSize();
int x1 = (int) (size.width * 0.01);
new TouchAction(driver).press(mobileElement).waitAction(Duration.ofSeconds(1)).moveTo(x1,0).release().perform();
}
试一试
在这里,我找到了我的解决方案: 有一个名为TouchAction的类,您必须以函数链接的形式提供参数和调用的函数
new TouchAction(driver)
.press(mobileElement)
.waitAction(300)
.moveTo(0,100)
.release()
.perform();
这里,驱动程序是AppiumDriver的对象,mobileElement是mobileElement的对象。moveTo功能就是完成整个刷卡操作的功能。刷卡需要起始位置和结束位置。在这里,我找到了我的解决方案: 有一个名为TouchAction的类,您必须以函数链接的形式提供参数和调用的函数
new TouchAction(driver)
.press(mobileElement)
.waitAction(300)
.moveTo(0,100)
.release()
.perform();
这里,驱动程序是AppiumDriver的对象,mobileElement是mobileElement的对象。moveTo功能就是完成整个刷卡操作的功能。刷卡需要起始位置和结束位置。有时向元素的最后一个像素发出命令可能会出错。我不知道它是否能解决您的问题,但请尝试将您的最终值设置为1而不是0?@MikeCollins您在谈论哪些最终值?你是说最后一次,最后一次?是的。不太可能解决我们的问题,但非常简单,可以尝试,而且我可以看到一些可能导致问题的东西。尝试使用带MobileBy.AndroidUIAutomator定位器的UiScrollable。有时向元素的最终像素发出命令可能会有问题。我不知道它是否能解决您的问题,但请尝试将您的最终值设置为1而不是0?@MikeCollins您在谈论哪些最终值?你是说最后一次,最后一次?是的。不太可能解决我们的问题,但足够简单,可以尝试,并且我可以看到一些可能导致问题的东西。尝试将UiScrollable与MobileBy.AndroidUIAutomator定位器一起使用。