Java 无法打印移动视图滚动中显示的所有元素

Java 无法打印移动视图滚动中显示的所有元素,java,selenium-webdriver,appium,Java,Selenium Webdriver,Appium,如何使用java在appium中打印移动屏幕上显示的所有元素,实际上我已经编写了如下代码:- List<WebElement> orderidList=driver.findElementsByXPath("//android.widget.TextView[contains(@resource-id,'view_shipments_OrderNo_TextView')]") for (int i = 0; i < orderidList.size(); i++) {

如何使用java在appium中打印移动屏幕上显示的所有元素,实际上我已经编写了如下代码:-

List<WebElement> orderidList=driver.findElementsByXPath("//android.widget.TextView[contains(@resource-id,'view_shipments_OrderNo_TextView')]")
for (int i = 0; i < orderidList.size(); i++) {
                System.out.println(orderidList.get(i).getText());
            }
List orderidList=driver.findElementsByXPath(//android.widget.TextView[contains(@resource id,'view\u shippings\u OrderNo\u TextView'))
对于(int i=0;i
但它会打印出移动电话视图可见的医嘱ID的名称。但是我想要所有OrderID的不同列表,所有OrderID在滚动后都是可见的,我可以实现滚动,但我不知道需要滚动多少。请建议!!
这是UI automator的屏幕截图,我想获得所有OrderID的列表:-

这是预期的行为。UiAutomator只能检测Android设备屏幕上的可见元素。您可以获得可见的元素列表。如果你想得到所有元素的列表,那么你需要滚动并得到列表,滚动并得到列表,以此类推直到结束。没有办法使用Appium Inspector/UiAutomator获得Android的可见元素列表,就像Vinod已经告诉过它只在屏幕上打印可见元素一样。因此,您需要让您的代码执行手动滚动所需的步骤,滚动直到您看不到任何新元素。看看下面的代码。我使用链接哈希集来维护元素的顺序,并且不捕获任何重复项

Set<String> appList = new LinkedHashSet<String>();

By by = By.xpath("//android.widget.TextView[contains(@resource-id,'view_shipments_OrderNo_TextView')]");

        String currentOrder, newOrder;

        do {

            currentOrder = driver.findElements(by).get(0).getText();

            int count = driver.findElements(by).size();

            for (int i = 0; i < count; i++) {
                String appName = driver.findElements(by).get(i).getText();
                appList.add(appName);
            }
            driver.swipe(400, 400, 400, 74, 2000);

            newOrder = driver.findElements(by).get(0).getText();
        } while (!currentOrder.equals(newOrder));
Set appList=new LinkedHashSet();
By=By.xpath(//android.widget.TextView[包含(@resource id,'view\u foods\u OrderNo\u TextView'))”;
字符串currentOrder,newOrder;
做{
currentOrder=driver.findElements(by).get(0).getText();
int count=driver.findElements(by.size();
for(int i=0;i
这仅仅意味着您的xpath不正确。发布uiautomatorviewer的屏幕截图,以便我们可以为you@ShubhamJain:-上面添加了图片,请帮助!!:-你能提供这个假人吗,