2016年2月29日,星期一

如何在不使用scrollTo()的情况下在Appium中进行垂直滚动?



大家好,今天我们将看到如何在Appium测试用例中使用滚动动作。正如我们所知,在最新版本的appium中,swipe()和scrollTo()方法已被描述,让我们以替代方式查看列表视图。

影片教学- 
 

正在测试的应用-
请查看以下具有50个行的ListView的应用程序的屏幕截图。每行包含文本和切换按钮。当您单击顶部的行文本时,可以检查单击了哪一行。
使用Appium进行垂直滚动测试
垂直滚动

测试方案
1.启动活动。
2. Scroll to 清单项目:25.
3.单击行文本。
4.单击切换按钮。
在Appium中上下滚动
垂直滚动


测试用例 -



package com.example.anuja.appiumapplication;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.URL;

import io.appium.java_client.AppiumDriver;
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 io.appium.java_client.remote.MobileCapabilityType;

import static junit.framework.Assert.assertNotNull;

/**
 * Created by Anuja on 2/8/2017.
 */



public class HorizontalTabScroll
{
    鸦片Driver driver;
    Dimension size;

    @Before
    public void testCaseSetup()throws  Exception
    {

        DesiredCapabilities cap=new DesiredCapabilities();
        cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android device");
        cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "4000");
        cap.setCapability(MobileCapabilityType.APP, "c://apks//listviewsample.apk");
        cap.setCapability("noReset", true);
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);

    }
    
    @Test
    public void testScroll()throws Exception
    {
        driver.findElementByAccessibilityId("Views").click();
        AndroidElement list = (AndroidElement) driver.findElement(By.id("android:id/mobile_list"));
        MobileElement listGroup = list
                .findElement(MobileBy
                        .AndroidUIAutomator("新的UiScrollable(新的UiSelector())。scrollIntoView("
                                + "新的UiSelector()。text(\" 清单项目:25\"));"));
        assertNotNull(listGroup.getLocation());
        listGroup.click();
    }

    @After
    public void testCaseTearDown()
    {
        driver.quit();
    }
}
with this post you can write test code 对于 垂直滚动 up to specified dimensions , 垂直滚动 till you find the element 和垂直滚动直到结尾。

希望本教程对您有所帮助。请在下面的评论部分中分享您的反馈和问题。请在社交媒体上关注我,以获取最新的帖子更新。

21条评论:

  1. driver.scrollTo("List item:25") is undefined 对于 type AndroidDriver. How do I fix it? Thank advance.

    回复删除
  2. 你好 check this out - http://www.yubo666.com/2016/10/how-to-perfrom-vertical-scroll-without.html

    回复删除
  3. 嗨,我正在使用此方法,但是eclipse表示此方法已贬值,还有其他方法吗?

    回复删除
  4. 嗨,我无法获取这些2导入,您能否指导我如何获取这些
    导入io.appium.java_client.android.AndroidDriver;
    导入io.appium.java_client.android.AndroidElement;
    我正在使用最新的javaclient jar 5.0

    回复删除
  5. 我可以获取一个apk文件吗?

    回复删除
  6. 我有不可见的textview元素(不是列表视图项)。仅当我向上滑动/向上滚动时才可见。我无法点击它,因为它不可见。我如何向上滚动并单击该项目

    回复删除
  7. 此评论已被作者删除。

    回复删除
  8. 它真的很有帮助。您能否提出建议-如何在iOS Native App上实现这一目标?

    谢谢

    回复删除
  9. 嗨,您能否提供一个示例,在不使用swipe()和scrollTo()函数的情况下在Appium中进行水平滚动。

    回复删除
  10. 你好
    使用您的代码,我可以滚动到文本,但无法在下拉列表中选择文本。没有引发元素发现错误。下面是代码:
    AndroidElement列表=(AndroidElement)driver.findElement(By.id("coles.au.simplertools:id / locationName"));
    driver.findElementById("coles.au.simplertools:id / locationName").click();
    MobileElement listGroup = list.findElement(MobileBy.AndroidUIAutomator("新的UiScrollable(新的UiSelector())。scrollIntoView("+ "新的UiSelector()。text(\"GROCERY\"));"));
    assertNotNull(listGroup.getLocation());
    listGroup.click();

    回复删除
    回覆
    1. 而不是listGroup.click用要定位的元素替换listGroup并执行操作

      删除
  11. 如何滑动列表视图和水平回收视图项

    回复删除
  12. 从appium版本1.6.0及更高版本'scrollTo'该方法被阿皮贬值。您可以使用滑动方法执行scrollTo动作操作。您只需要运行一个'for' loop number of times you want to scroll 对于 the presence of Element. In each loop check the presence of Element by getting list of required element. If Element found break the loop and click.

    回复删除
  13. This works 对于 scroll down. How would you do 对于 scroll up to an element?

    回复删除
  14. 请在您的代码中写注释。了解不足会更有用。

    回复删除
  15. Sanket Gajbhiv2018年5月12日03:33

    非常感谢。有用。
    我经历了这么多天的问题,现在一切正常。

    回复删除
  16. 您能否解释一下向下滚动后如何向上滚动...?

    回复删除