2015-04-02 1 views
-1

Я пытаюсь запустить UI-тест с использованием UIAutomator в приложении, которое существует за пределами проекта, из которого я запускаю тест. Поскольку я работаю с приложением, которое находится вне моего тестового проекта, я не могу использовать Espresso с ним (насколько я знаю). Я хочу открыть левый ящик в этом приложении. У эспрессо был очень простой способ сделать это:Открытый ящик с UIAutomator без изменения кода приложения

openDrawer(R.id.drawer_layout) 

, но это похоже на UIAutomator.

Кто-то задал аналогичный вопрос в другом месте, и рекомендация, предоставленная им, заключалась в том, что они должны изменить ящик в исходном коде приложения, которое они тестировали, чтобы UIAutomator мог его более просто открыть. Однако у меня нет доступа к исходному коду приложения, которое я хочу проверить, поэтому я, к сожалению, этого не могу. Похоже, что использование общих функций перетаскивания и прокрутки не так хорошо работает, но я не уверен в этом.

Можно ли открыть ящик, используя UIAutomator? Если да, то какой лучший способ?

ответ

1

Необходимо использовать описание содержания ActionBarDrawerToggle. Если вы посмотрите doc, вы увидите, что у ActionBarDrawerToggle есть только два конструктора, у которых есть openDrawerContentDescRes и closeDrawerContentDescRes. Поэтому без изменения кода вы можете использовать ответ от этого topic.

+0

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

+0

У вас нет ActionBarDrawerToggle? Я думаю, вы должны иметь его, см. [Здесь] (http://developer.android.com/training/implementing-navigation/nav-drawer.html#ActionBarIcon). Если у вас его нет, возможно, вам следует предоставить простой код, поэтому я постараюсь вам помочь – ThomasThiebaud

+0

У меня нет доступа к исходному коду приложения, которое я пытаюсь проверить, поэтому я не могу добавить его там или даже посмотреть, есть ли там. Я изучил приложение, используя uiautomatorviewer, чтобы увидеть, могу ли я найти элемент ActionBarDrawerToggle, но я его там не видел. Я, как я полагаю, внедрил навигационный ящик без использования ActionBarDrawerToggle, поэтому я не уверен, что он есть. – ThisIsAName12345

0

Если единственное, что вы хотите сделать, это открыть боковой ящик вы можете сделать это, как пользователь будет:

  • Нажмите кнопку приложения в панели действий

или

  • Слайд с левого края вправо (в середине экрана должно быть достаточно, но я обнаружил, что иногда он не полностью открывает его, что вызывает немедленное закрытие. Поэтому я бы посоветовал вам скользить t плохой правый край, например)

С помощью второго варианта вам даже не нужно знать идентификатор любого элемента.

Смежные вопросы