2016-09-14 1 views
1

Это не дубликат.Доступ к кнопке переключения в настройках Android с помощью appium whlie клиент написан в groovy и java

Я пишу автоматизацию в Appium. Я довольно новичок в концепции автоматизации и Appium. Я использую java-клиент.

У меня есть сценарий, в котором мое приложение для Android, для которого я пишу автоматизацию, должно принять разрешение андроида. Мое приложение переходит на следующую страницу настроек Android Settings, как показано ниже.

enter image description here

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

Я мог бы получить идентификатор ресурса для UI Automator Viewer что-то вроде этого.

enter image description here

Так что моя инициализация что-то вроде этого, чтобы получить доступ к коммутатору Widget.

SwitchID { $("#switchWidget") } 

По-видимому, когда я запускаю файл функции, Appium не в состоянии найти этот переключатель виджет. Но я могу автоматизировать другой виджет внутри приложения, над которым я работаю. но я ничего не могу получить на этом экране настроек Android.

Любая помощь будет высоко оценена. Thanks

+0

должны понимать POM вы следуете и как получить доступ виджет по вашей заявке. В этом вопросе очень мало информации. – nullpointer

ответ

1

Доступ к любому видимому компоненту можно получить в пользовательском интерфейсе. Будь то кнопки/переключатели или что угодно.
Существует несколько способов доступа к элементу с помощью драйвера Appium/Selenium - по имени/id/xpath и т. Д.
Используйте UIAutomator для захвата идентификатора/имени/содержимого этого видимого элемента, и все готово!
В вашем случае, как я вижу в скриншоте UIAutomator, вы получаете как идентификатор, так и имя. Поэтому вы можете использовать любой из них, чтобы щелкнуть нужный элемент.
(Вы можете обратиться к вашему соответствующему синтаксису заводного/Java от Appium)
http://appium.io/introduction.html

1

Использованием Java-клиента я хотел бы получить ключ по имени класса. Что-то вроде этого: driver.findElement(By.className("android.widget.Switch"))

Не уверен, что это отличный клиент, но он, вероятно, схож.

+0

Спасибо TinyTimZamboni –

0

Что делать, если переключатель уже проверен? Если вы нажмете вы будете отключить его ...

Try:

driver.find_element_by_xpath("//android.widget.Switch[@resource-id='android:id/switchWidget' and @checkable='true']") 

Это будет только ваш элемент, когда триггерная