Appium 在应用程序中滚动

Appium 在应用程序中滚动,appium,Appium,我正在使用Appium+Java自动化平板电脑应用程序。在一个屏幕上,我有100多个字段(文本框+下拉列表)来自动显示滚动视图 为了自动化这100多个字段,我在单独的Excel表格中列出了所有ID(这些文本框和屏幕中的下拉列表)以及测试用例和测试数据。我的代码在循环中运行,选择测试用例、数据和相关ID并执行。因此,我的代码如下所示: loop : for(int j = 1; j <= fieldCount; j++) { objElementRepositoryLibrary.s

我正在使用Appium+Java自动化平板电脑应用程序。在一个屏幕上,我有100多个字段(文本框+下拉列表)来自动显示滚动视图

为了自动化这100多个字段,我在单独的Excel表格中列出了所有ID(这些文本框和屏幕中的下拉列表)以及测试用例和测试数据。我的代码在循环中运行,选择测试用例、数据和相关ID并执行。因此,我的代码如下所示:

loop : for(int j = 1; j <= fieldCount; j++)
{
    objElementRepositoryLibrary.setElementRepositoryDataLibrary(j);

    switch(ElementRepositoryLibrary.getElementType()) {

    case "AutoPopulated":
        System.out.println(ElementRepositoryLibrary.getElementValue() + " is Autopopulated");
        break;

    case "Dropdown": 
        ElementOperation.checkElementState(qdeDriver, ElementRepositoryLibrary.getLocator(), ElementRepositoryLibrary.getElementValue());

        if(ElementOperation.ElementAcceess.equals(false))
            System.out.println(ElementRepositoryLibrary.getElementValue() + " is disabled");
        else
            objElementOperation.dropdownSelectListner(qdeDriver, ElementRepositoryLibrary.getLocator(), ElementRepositoryLibrary.getElementValue(), field[0][j-1]);
        break;

    case "Button":
        ElementOperation.checkElementState(qdeDriver, ElementRepositoryLibrary.getLocator(), ElementRepositoryLibrary.getElementValue());

        if(ElementOperation.ElementAcceess.equals(false)) {
            System.out.println(ElementRepositoryLibrary.getElementValue() + " is disabled");
            break loop;
        }
        else if(field[0][j-1].equals(""))
            System.out.println("Checking for Null value");
        else if(field[0][j-1].equals("Yes") && ElementRepositoryLibrary.getFieldName().equals("QR Scanner"))
            objElementOperation.buttonClickListner(qdeDriver, ElementRepositoryLibrary.getLocator(), ElementRepositoryLibrary.getElementValue());
        else if(ElementRepositoryLibrary.getFieldName().contains("Capture Document"))
            objElementOperation.captureDocument(qdeDriver, ElementRepositoryLibrary.getLocator(), ElementRepositoryLibrary.getElementValue());
            break;

    default :
        objElementOperation.textboxSetListner(qdeDriver, ElementRepositoryLibrary.getElementType(), ElementRepositoryLibrary.getLocator(), 
                ElementRepositoryLibrary.getElementValue(), field[0][j-1]);
        break;
    }   
}

loop:for(int j=1;j据我从您那里了解,代码运行良好,因此我将如何完成此测试:

  • (正如您所做的)按下下拉列表并搜索该项目-在本例中,您正确地忽略了NoTouchElementException
  • 保存最后一个可见项的名称(如果您需要有关代码段的任何帮助,请告诉我)
  • 再次执行滚动并搜索项目->再次保存最后一个项目
  • 经过几次迭代后,最后一项将保持不变->这意味着我们在列表的末尾,在这种情况下,测试失败

  • 下拉列表中的两项(或更多项)是否可能具有相同的值?@DavidEp,不,不可能。这个问题是否相关?是的-我想我可以给你一个答案。我猜,你误解了我的问题。这不是一个长列表的下拉列表(我指的是100+个元素)选项。它实际上是包含文本框和下拉列表的
    元素。简言之,我的意思是,它是一个有许多字段的表单。但是,你的答案给了我一个解决方法。让我试试。如果它有效,我会发布正确的答案。