Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Appium中,如何使用Java方法在Android屏幕上滚动并验证所需的元素集?_Java_Android_Appium_Appium Android - Fatal编程技术网

在Appium中,如何使用Java方法在Android屏幕上滚动并验证所需的元素集?

在Appium中,如何使用Java方法在Android屏幕上滚动并验证所需的元素集?,java,android,appium,appium-android,Java,Android,Appium,Appium Android,在我的Android应用程序中,我需要向下滚动屏幕并验证所需元素(每个元素)是否可用。如何使用Java方法实现这一点?这里的好方法是使用本机UIAutomator查找策略: public void isElementPresent(String resourceId) { return androidDriver.findElementsByAndroidUIAutomator("new UiScrollable(new UiSelector() .scrollable(t

在我的Android应用程序中,我需要向下滚动屏幕并验证所需元素(每个元素)是否可用。如何使用Java方法实现这一点?

这里的好方法是使用本机UIAutomator查找策略:

public void isElementPresent(String resourceId) {
    return androidDriver.findElementsByAndroidUIAutomator("new UiScrollable(new UiSelector()
       .scrollable(true).instance(0)).scrollIntoView(new UiSelector().resourceId("<your app package name>:id/" + resourceId + "\"))")
       .size() > 0; 
}
public void isElementPresent(字符串资源ID){
返回androidDriver.findElementsByAndroidUIAutomator(“新UiScrollable(新UiSelector())
.Scrolling(true).instance(0)).ScrollingToView(新的UiSelector().resourceId(“:id/”+resourceId+“\”))
.size()>0;
}

它将向下和向上滚动视图,通过提供的
resourceId
查找元素,如果元素存在,则返回
true

使用以下代码使用JAVA上下滚动

driver.findElementByAndroidUIAutomator(“新UiScrollable(新UiSelector()).scrollIntoView(文本(\“**您要查找的文本**\”);”)

谢谢。

使用以下代码使用java向上滚动:

public void swipeUp(AppiumDriver AppiumDriver、MobileElement fromPosition、MobileElement toPosition){
维度大小=fromPosition.getSize();
维度size1=toPosition.getSize();
TouchAction滑动=新的TouchAction(appiumDriver)
.按(element选项.element(fromPosition,size.width/2,size.height-20))
.waitAction(WaitOptions.WaitOptions(持续时间为秒(4)))
.moveTo(ElementOption.element(位置,尺寸1.width/2,尺寸1.height/2+30)).release();
swipe.perform();
logger.info(“刷卡成功”);
}

您可以使用此方法实现滚动:每次滚动后,您都可以验证您的预期值。谢谢。按照您的方法抛出一个错误,即“无法应用TouchAction中的按(io.appium.java_client.touch.offset.PointOption)”解决方案是针对java客户端5.x的,我不确定您使用的是哪个java客户端版本!如何检查正在使用的java客户端版本?您可以从
外部库
文件夹或
pom.xml
文件中检查它是否适合我。谢谢你,Nauman Malik
public void swipeUp(AppiumDriver<?> appiumDriver, MobileElement fromPosition, MobileElement toPosition) {
        Dimension size = fromPosition.getSize();
        Dimension size1 = toPosition.getSize();
        TouchAction swipe = new TouchAction(appiumDriver)
                .press(ElementOption.element(fromPosition, size.width / 2, size.height - 20))
                .waitAction(WaitOptions.waitOptions(Duration.ofSeconds(4)))
                .moveTo(ElementOption.element(toPosition, size1.width / 2, size1.height / 2 + 30)).release();
        swipe.perform();
        logger.info("Swipe Success");
    }