Как получить границы, используя описание контента и выполнить длинный клик

У меня есть uiobject с именем «Галерея». Я хочу щелкнуть этот Uiobject, используя Bounds. Текущий метод, которым я следую: получение высоты и ширины устройства с помощью getDisplayHeight/width(), затем зависит от высоты и ширины телефона. Я нажимаю границы Uiobject. Проблема, с которой я сталкиваюсь, заключается в том, что если изменить оборудование, которое больше экран границы/координаты изменятся. Чтобы преодолеть это, можно ли получить границы этого объекта Uiobject («Галерея») и выполнить длинный щелчок?

Как получить границы с помощью описания контента и выполнить длинный клик?

  UiObject obj1 = new UiObject(new UiSelector().text("Gallery"));

У меня есть Uiobject с описанием контента под названием «Галерея». Можно ли получить границы этого объекта Uiobject («Галерея») и выполнить длинный щелчок?


person user3135727    schedule 07.03.2014    source источник
comment
чувак, ты о чем?   -  person pskink    schedule 07.03.2014
comment
У меня есть uiobject с именем Галерея. Я хочу щелкнуть этот Uiobject, используя Bounds. Текущий метод, которым я следую: получение высоты и ширины устройства с помощью getDisplayHeight/width(), затем зависит от высоты и ширины устройства. Я нажимаю координаты Uiobject. Проблема, с которой я сталкиваюсь, заключается в том, что если изменить телефон, который больше экран границы/координаты изменятся. Чтобы преодолеть это, можно ли получить границы этого Uiobject (галереи) и выполнить длинный щелчок?   -  person user3135727    schedule 07.03.2014
comment
а, ладно, это uiautomator... извините за путаницу   -  person pskink    schedule 07.03.2014
comment
Я нахожу решение, и оно работает.   -  person user3135727    schedule 07.03.2014


Ответы (2)


Мы можем сделать таким образом

UiObject descriptionElement = new UiObject(new UiSelector().description("your description"));
        Rect bounds = descriptionElement.getBounds();
        int x = bounds.centerX();
        int y = bounds.centerY();
        getUiDevice().click(x, y);
person Rajesh    schedule 11.03.2014

Если я правильно помню, в UiDevice нет метода длинного нажатия, он поддерживает только click(). если использование координат не является для вас требованием, вы можете сделать долгое нажатие на объект следующим образом:

UiObject descriptionElement = new UiObject(new UiSelector().description("ваше описание")); описаниеЭлемент.longClick();

person JohnSmith    schedule 11.03.2014