2016-07-15 2 views
0

Закреплен определяющим методом видимости элементов в тестах пользовательского интерфейса. Мое приложение имеет несколько слоев, которые одновременно видны на экране, и трудно узнать, не отображается ли элемент программно.Appium, Java, iOS: как узнать, видимо ли элемент, если он не находится на переднем плане

Как я могу узнать, является ли класс io.appium.java_client.ios.IOSElement видимым или нет?

У меня есть некоторые атрибуты Appium инспектора:

//////////////////////////////////////// 
name: 
type: UIATextField 
value: 19670027 
label: 
hint: 
enabled: true 
visible: true 
valid: true 
location: {446, 375.00003051757812} 
size: {196, 56.000007629394531} 
xpath://UIAApplication[1]/UIAWindow[1]/UIAScrollView[2]/UIATextField[6] 
//////////////////////////////////////// 

Единственное изменение это «видно: правда», есть ли способ, чтобы получить его? Я использую IOSDriver с appium Java-клиентом. isEnabled, isDisplayed методы не помогают, поскольку элемент присутствует, но покрыт другим слоем.

Заранее спасибо. Изображение: enter image description here

+0

post snip экрана и uiautomator – karthick23

+0

Смотрите изображение по ссылке в конце описания. Как вы видите, элемент на самом деле невидим, но показан в иерархии, поэтому Appium видит его. –

ответ

0

isDisplayed должен работать для атрибута «visible: true/false».

Только другим способом, который я знаю для проверки «видимого» атрибута, является получение содержимого driver.getPageSource() и анализ/чтение XML-кода, чтобы найти правильный элемент и проверить значение атрибута.

+0

Отличная идея, спасибо! Но в любом случае это не вариант для такой небольшой задачи. Я предполагаю, что это должен быть более очевидный и быстрый способ получить «видимый» атрибут. Представлен связанный выпуск в appium: https://github.com/appium/java-client/issues/446 –

+0

Нашел аналогичный вопрос. http://stackoverflow.com/questions/15088832/getattribute-not-returning-complete-value-for-style-in-selenium –

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