Выберите определенный мобильный элемент, который не отображается в iOS, а затем выполните на нем действие касания - PullRequest
2 голосов
/ 20 июня 2019

Я новичок в мобильной автоматизации и пытаюсь выяснить, как поместить определенный элемент из списка в представление и выполнить касание по нему.

so far I did it for Android where only the elements are visible when it in-view so we can use scrollToView for them and then pick those if you find them on one on view 
however in iOS I can see all the element in Appium even though they are not in the view but problem is I can't tap and scroll to that particular element 

возможно ли сделать список всех элементов, а затем прокрутить представление этого конкретного элемента, выполнив цикл для дочерних элементов? это мой тот же код, который для Android и работает ..

if(!isElementPresent(by("label.details_key",ImmutableMap.of("index","2"))))
            scrollToMyView;

Private void scrollToMyView()
    {
        Dimension dimensions = getDriver().manage().window().getSize();
        int Startpoint = (int) (dimensions.getHeight() * 0.7);
        int scrollEnd = (int) (dimensions.getHeight() * 0.3);
        int mid = (int) (dimensions.getWidth() * 0.5);
        new TouchAction(getDriver()).press(PointOption.point(mid, Startpoint)).waitAction(WaitOptions.waitOptions(Duration.ofMillis(1000))).moveTo(PointOption.point(mid, scrollEnd)).release().perform();                              
        label("scroll");
        hardWait(2000);
    }

это я попробовал для iOS ... но не работает в этом, почему у меня есть обходной путь?

 public boolean swipeToDirection_iOS_XCTest(MobileElement el, String direction) {
            try {
                JavascriptExecutor js = (JavascriptExecutor) getDriver();
                HashMap<String, String> swipeObject = new HashMap<String, String>();
                if (direction.equals("d")) {
                    swipeObject.put("direction", "down");
                } else if (direction.equals("u")) {
                    swipeObject.put("direction", "up");
                } else if (direction.equals("l")) {
                    swipeObject.put("direction", "left");
                } else if (direction.equals("r")) {
                    swipeObject.put("direction", "right");
                }
                swipeObject.put("element", el.getId());
                js.executeScript("mobile:swipe", swipeObject);
                return true;
            } catch (Exception e) {
                return false;
            }
        }

MobileElement el = getDriver().findElement(by("tab.posted_trans"));
            if(swipeToDirection_iOS_XCTest( el, "down"));
                getDriver().findElement(by("tab.posted_trans")).click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...