滚动在android应用程序中的正常页面中运行正常。但是,如果我单击任何元素,它将在现有页面上以新页面的形式打开,因此在使用touchaction的appium自动化中无法进行滚动。这是我向下滚动的代码< / p>
public void scrollDown(AppiumDriver driver){
try {
int height = driver.manage().window().getSize().getHeight();
TouchAction touchAction = new TouchAction(driver);
touchAction.longPress(5, height * 2 / 3).moveTo(5, height /
3).release().perform();
}
catch(Exception e) {
e.getMessage();
}}
答案 0 :(得分:0)
您可能无法在滑动视图的边界内开始滑动。如果是这种情况,调试的一种好方法是激活androids开发人员选项中的Pointer location
选项,然后观察自动化的进展。
现在,如果这是我期望的问题,那么您需要对有效点的位置进行一些数学运算。我建议您查看以下功能
MobileElement el = myElement; // Pretend this is a real element :D
el.getSize(); // This has a getHeight() and getWidth() function
el.getLocation; // This has a getX() and getY() function
现在您可以做什么(假设您要在矩形区域中滑动,就可以找出最小和最大的x和y位置。
要获得Y位置很简单:
int smallestY = el.getLocation.getY();
int largestY = smallestYPosition + el.getSize().getHeight();
现在要获得X职位:
int smallestX = el.getLocation.getX();
int largestX = smallestX + el.getSize().getHeight();
现在在刷卡时使用这些点。
这在基本情况下会起作用,但是据我了解,如果该元素的宽度大于屏幕尺寸,则会出现问题,因此您必须进行处理。
希望这可以帮助您开发一种适用于给定案例的方法。不幸的是,根据当前给出的信息,我无法提供开箱即用的答案。