java - Android应用程序Listview无法滚动到底部以在java中使用appium搜索特定元素

标签 java android appium

有人可以帮我解决这个问题吗?

我遇到一个问题 - Android 应用程序 Listview 无法滚动到底部以使用 java 中的 appium 搜索特定元素

  1. 使用的代码是:

         HashMap<String, String> scrollObject = new HashMap<String, String>();
    
        RemoteWebElement element = (RemoteWebElement)driver.findElementById(fullListContainer);
    
        JavascriptExecutor js = (JavascriptExecutor) driver;
        String widId = ((RemoteWebElement) element).getId();
    
        scrollObject.put("text", tvProvidername);
        scrollObject.put("element", widId);
    
        js.executeScript("mobile: scrollTo", scrollObject);
    
        seleniumFunctions.click(driver, By.name(tvProvidername));
    

//元素是Listview

//tvProvidername是滚动Listview时要搜索的文本

  • 问题描述:原生 Android 应用的 Listview 超过 280 个元素,代码行 'js.executeScript("mobile:scrollTo",scrollObject);'只是执行到 100 个元素,它不会滚动到应用程序中超过 100 个元素,因此当搜索第 100 个元素之后的元素时,脚本会失败。
  • 谢谢, NRM

    最佳答案

    我能够在 ListView 中向下滚动以使用以下策略查找特定元素,希望这有帮助......(您也可以使用 findElementByText)

    boolean token = false;
    while(!token) {
        try {
            if (driver.findElementByID(cellId).isDisplayed()) {
                token = true;
                System.Out.println("Cell Found;");
            }
        } catch (Exception e) {
            Dimension size = driver.manage().window().getSize();
    
            int starty = (int) (size.height * 0.80);
            int endy = (int) (size.height * 0.20);
            int x = size.width / 2;
    
            //Vertical scrolling down
            driver.swipe(x, starty, x, endy, 4000);
            continue;
        }
    }
    

    关于java - Android应用程序Listview无法滚动到底部以在java中使用appium搜索特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25921030/

    相关文章:

    java.security.AccessControlException : access denied ("java.util.PropertyPermission" "jna.boot.library.path" "read")

    android - 加入 radio 组

    appium - XCUITest 并不总是以错误 ECONNREFUSED 开始

    android - 错误 : Could not get the Java version. 是否安装了 Java?

    java - 如何使用Android键盘提交搜索字段?

    java - 带有条件/超时的弱引用

    java - Hadoop <init> 没有这样的方法异常

    java - 使用elasticsearch获取最近的位置

    java - Android XML (RSS) 忽略引号 (")

    java - 是否可以等待 GC_FOR_ALLOCATION 完成?